Boost logo

Boost :

From: Dave Gomboc (dave_at_[hidden])
Date: 2004-03-01 16:56:38


I put about a day into looking at FC++ (reading the papers, trying to
write some small examples). I didn't have a lot of success -- partly
because it has been quite a while since I last programmed in a
functional language, and partly because the documentation needs serious
work.

Therefore, I don't have a full review to provide. Much like the
serialization library, I think that this is an ambitious and important
library that isn't ready to pass a Boost review on its first time
around. If the author is up to it, then I'm sure further work will get
it there.

Re argument limit of 3: I'm a bit surprised that this has never been a
problem. Seeing what boost::preprocessor can do for you is probably a
good idea.

Naming nit-picks:

"Functor" has for years been commonly used to mean "function object" (in
addition to its original meaning from category theory).
[http://www.dre.vanderbilt.edu/~bala/c++-function-objects.pdf;
http://www.sgi.com/tech/stl/functors.html;
http://en.wikipedia.org/wiki/Functor]. Have no referees of your
academic publications brought this up? There is no need to name anew
a common concept: therefore, s/functoid/functor globally! (Global
search and replace is your friend. :-)

A list type is already present in ::std, and means something different.
Perhaps lazy_list, or (cringe) llist.

Follow the C++ standard's practice for variable naming, e.g.
TheActualTypeOfTheLambdaExpressionIsNotConvertibleToItsGivenType
should be
the_actual_type_of_the_lambda_expression_is_not_convertible_to_its_given
_type
(example from lambda.hpp)


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk