I would like to see if there is interest in incorporating the FC++ library into Boost.
FC++ is a library for functional programming. In FC++ we program with "functoids" (classes which define operator() and obey certain other conventions). The library features include: - higher order, polymorphic (template) functions (direct functoids) - lazy lists - library of useful functions, combinators, and monads (mostly mimicking the Standard Library of the language Haskell) - currying - infix function syntax - dynamically bound functions (indirect functoids) - effect combinators - interfaces to STL via iterators - ways to transform normal C++ functions/methods into functoids - reference-counted pointers - a lambda sublanguage, with syntax for lambda, let, letrec, do-notation, and monad comprehensions Much of the documentation for FC++ can be found at http://www.cc.gatech.edu/~yannis/fc++/ and the rest appears linked from http://www.cc.gatech.edu/~yannis/fc++/New1.5/ (which has a pre-release of the upcoming version (v1.5), currently out for beta-testing). The upcoming release comprises about 9000 lines of code and compiles on a number of different compilers (g++, Comeau, Intel, MSVC++). I have received mail a couple times in the past few years expressing interest in adding FC++ to Boost. However until now, I have been unwilling (1) to do the work to "Boostify" the library, and (2) to lose any "creative control" to tinker with things on my own whims. I think now the library has finally settled down, and all the major features I have wanted to add are included in the upcoming release (v1.5) of FC++. And I have some free time this summer to do the work. Which is why I'm now finally talking to you-all. So I am sending this mail to see: (1) If there is still interest in adding FC++ to Boost, and (2) If there is interest, what-all needs to be changed with the FC++ library to make it meet the standards of Boost. With regards to (1), I hope yes, but the Boost Lambda Library has a bit of conceptual overlap with FC++, so I can imagine this issue being potentially contentious. (FC++ and Lambda ostensibly provide much of the same kinds of functionality, but while there is overlap, each library does a lot of "its own thing" too. I (and Jaakko too, probably) can say more about this if necessary.) With regards to (2), I have been reading all the stuff on the Boost web site regarding submissions, and so I am aware of a number of issues, including: - Reuse: FC++ "reinvents" a number of Boost's libraries in its implementation, such as smart pointers and metaprogramming tricks. A Boost version of FC++ should reuse Boost libraries for this. - Documentation: as of yet, there is no good singular "users guide" for FC++ aimed at the audience of C++ programmers; I'd need to write one. - Naming conventions: FC++ uses a naming convention other than Boost's (including systematically using capital letters in identifiers). But at this point I'm probably already getting ahead of myself. So I'll stop talking and ask people to comment with regards to "interest" in FC++. Thanks, Brian -- -Brian McNamara ([EMAIL PROTECTED]) _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost