From: Joel de Guzman (joel_at_[hidden])
Date: 2005-06-15 04:39:19
I got this email from Jim Grundy. I thought I'd like to share
this with you as I am also interested in what others might say.
Here's Jim's email:
I'm interested in learning about applications of declarative
programming paradigms - particularly, but not exclusively, the
functional paradigm - within the C++ programming community. I'm
interested in part because I'm a member of the program committee for
the CUFP (Commercial Users of Functional Programming) 2005 workshop.
You can learn more about the workshop here:
The CUFP workshop is co-located with the ICFP conference, but differs
in that it is less formal venue and in that it focuses on the
pragmatics of applications of functional programming rather less than
on theory and or the study of the paradigm and the languages that
support it themselves. The workshop has a broad area of interest.
Although the "C" stands for commercial, its the applications aspect
that is important. Open source applications, commercial or otherwise,
are also of interest. The PC members for CUFP are probably most
strongly associated with strongly typed higher-order functional
languages, like ML, OCaml and Haskell, but we are interested in
applications of the functional paradigm in any language. In
particular, projects that make use of the functional paradigm (or
other declarative paradigms, say via the LC++ library) in C++ would be
of interest to us.
<<I do not know what LC++ is, perhaps Jim meant FC++?>>
I've learned a little about a variety of libraries available for
functional programming in C++, notably the Lambda and Phoenix
libraries available in boost. I would like to learn more about what
applications are out there that use these or similar libraries in
order to leverage the functional paradigm. I'd also like to learn a
little about the experience of the developers of those applications.
Is functional programming generally useful within the context of C++
application development, or is it likely to be a niche technique? Are
"regular" C++ programmers making use of the paradigm, or is this guru
territory only? Is this paradigm actually used in end user
applications directly, or is it to be found only inside other general
purpose libraries like XR and Spirit (two of the the places where I
have seen the paradigm applied in C++).
Any thoughts appreciated.
As a library writer, I guess Doug Gregor's comment a few years
ago sums it all up:
About functional libraries in C++:
They're gaining acceptance, but are somewhat stunted by the
ubiquitousness of broken compilers. The C++ community is moving deeper
into the so-called "STL-style" programming paradigm, which brings many
aspects of functional programming into the fold. Look at, for instance,
the Spirit parser to see how such function objects can be used to build
Yacc-like grammars with semantic actions that can build abstract syntax
trees on the fly. This type of functional composition is gaining
momentum (there are often questions about it on comp.lang.c++.moderated
-- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk