LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Pizza into Java: translating theory into practice
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Functional style in C++: closures, late binding, and Lambda abstractions
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
History of programming languages---II
A framework for higher-order functions in C++
COOTS'95 Proceedings of the USENIX Conference on Object-Oriented Technologies on USENIX Conference on Object-Oriented Technologies (COOTS)
The Lambda library: unnamed functions in C++
Software—Practice & Experience
Logic programming in the context of multiparadigm programming: the Oz experience
Theory and Practice of Logic Programming
Functional programming with the FC++ library
Journal of Functional Programming
GLU embedded in C++: a marriage between multidimensional and object-oriented programming
Software—Practice & Experience
Implementing exact real arithmetic in python, C++ and C
Theoretical Computer Science - Real numbers and computers
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Implementing aspect-oriented programming constructs as modular language extensions
Science of Computer Programming
A Tutorial on Object-Oriented Functional Programming
Central European Functional Programming School
EClean - An Embedded Functional Language
Electronic Notes in Theoretical Computer Science (ENTCS)
Multi-language synchronization
ESOP'07 Proceedings of the 16th European conference on Programming
ECOOP'07 Proceedings of the 2007 conference on Object-oriented technology
Functional programming with C++ template metaprograms
CEFP'09 Proceedings of the Third summer school conference on Central European functional programming school
Functional Extensions to the Boost Metaprogram Library
Electronic Notes in Theoretical Computer Science (ENTCS)
AOP++: a generic aspect-oriented programming framework in c++
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Simple algebraic data types for C
Software—Practice & Experience
Parallelism granules aggregation with the T-system
PaCT'07 Proceedings of the 9th international conference on Parallel Computing Technologies
ADOK: a minimal object oriented real-time operating system in C++
ACM SIGBED Review - Special Issue on the 3rd Embedded Operating System Workshop (EWiLi 2013)
Hi-index | 0.00 |
This paper describes FC++: a rich library supporting functional programming in C++. Prior approaches to encoding higher order functions in C++ have suffered with respect to polymorphic functions from either lack of expressiveness or high complexity. In contrast, FC++ offers full and concise support for higher-order polymorphic functions through a novel use of C++ type inference.Another new element in FC++ is that it implements a subtype polymorphism policy for functions, in addition to the more common parametric polymorphism facilities. Subtype polymorphism is common in object oriented languages and ensures that functions in FC++ fit well within the C++ object model.Apart from these conceptual differences, FC++ is also an improvement in technical terms over previous efforts in the literature. Our function objects are reference-counted and can be aliased without needing to be copied, resulting in an efficient implementation. The reference-counting mechanism is also exported to the user as a general-purpose replacement of native C++ pointers. Finally, we supply a number of useful functional operators (a large part of the Haskell Standard Prelude) to facilitate programming with FC++. The end result is a library that is usable and efficient, while requiring no extensions to the base C++ language.