Boost logo

Proto :

Subject: Re: [proto] [phoenix3] FC++ still gets much attention
From: Eric Niebler (eric_at_[hidden])
Date: 2010-08-19 12:07:12

(Bcc'ing original To: list and moving this discussion to the proto list.
Please join us there if you're not already a member.)

On 8/19/2010 4:41 AM, Thomas Heller wrote:
> Hi,
> Just discovered this one:
> (
> Interesting read, claims FC++ be the best functional programming
> implementation.
> Isn't Phoenix supposed to be the successor of FC++?

No, Phoenix is supposed to be the successor of Boost.Lambda.

> Does phoenix need such a list data structure?

It might possibly benefit from one. But let's be clear: Phoenix is
intended to be a C++-in-C++ DSEL that just happens to have some
functional programming goodies. FC++ is a FP/Lisp/Haskell DSEL that
makes no effort to be like C++ at all. For instance, this is a FC++ lambda:

  lambda(X)[ plus[multiplies[3,X],1] ]

This is fine if you're used to functional programming but wouldn't sit
well with most C++ programmers. The Phoenix equivalent is:

  3 * arg1 + 1

I don't think there's any question which the majority of C++ programmers
would prefer.

That doesn't mean would couldn't borrow ideas from FC++ or the
functional crowd in general. In fact, the entire FC++ API could probably
be offered as a separate library built on top of Phoenix.

(BTW, FC++ was reviewed for inclusion in Boost and rejected, not because
it was bad, but because the authors (IMO) did a poor job of explaining
the benefits of functional programming as a paradigm to the Boost
community as a whole.)

Eric Niebler
BoostPro Computing

Proto list run by eric at