LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
HOPL-II The second ACM SIGPLAN conference on History of programming languages
Type reconstruction in finite rank fragments of the second-order &lgr;-calculus
Information and Computation - Special issue: Selections from 1990 IEEE symposium on logic in computer science
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
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Montana smart pointers: they're smart, and they're pointers
COOTS'97 Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3
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)
Scrap++: scrap your boilerplate in C++
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
Rapidly implementing languages to compile as C++ without crafting a compiler
Software—Practice & Experience
Proceedings of the 2008 ACM symposium on Applied computing
Multiparadigm Programming in Object-Oriented Languages: Current Research
Object-Oriented Technology. ECOOP 2008 Workshop Reader
Generic Libraries in C++ with Concepts from High-Level Domain Descriptions in Haskell
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
The function concept in C++: an empirical study
Proceedings of the 2009 ACM SIGPLAN workshop on Generic programming
C++ lambda expressions and closures
Science of Computer Programming
Compilation of generic regular path expressions using c++ class templates
CC'05 Proceedings of the 14th international conference on Compiler Construction
Web service publishing and composition based on monadic methods and program slicing
Knowledge-Based Systems
Proceedings of the Twelfth Workshop on Language Descriptions, Tools, and Applications
Hi-index | 0.01 |
We describe the FC++ library, 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. The FC++ library has a number of useful features, including a generalized mechanism to implement currying in C++, a “lazy list” class which enables the creation of “infinite data structures”, a subtype polymorphism facility, and an extensive library of useful functions, including a large part of the Haskell Standard Prelude. The FC++ library has an efficient implementation. We show the results of a number of experiments which demonstrate the value of optimizations we have implemented. These optimizations have improved the run-time performance by about an order of magnitude for some benchmark programs that make heavy use of FC++ lazy lists. We also make an informal performance comparison with similar programs written in Haskell.