
On 11/23/2011 5:17 PM, Daniel James wrote:
On 23 November 2011 02:21, Joel de Guzman <joel@boost-consulting.com> wrote:
As mentioned again and again, a good approximation of lambda is already existing in Boost. Namely: bind, lambda and phoenix.
From the lambda paper, "Unfortunately, this elegant solution suffers from serious problems in terms of usability, implementation complexity, and performance". I don't think I'd use local, but it seems clear that while the final result might be uglier, it's a lot less work to get there.
Keep in mind that Boost has been at the forefront of C++ library development. It is because of these libraries that push the limits of C++ that we see the advancement in C++ that we enjoy now in C++11. Case in point is Boost Lambda authored by Jaakko Jaarvi (et.al.) which ushered in C++11 lambda:
That paper seems to see boost lambda mainly as an example of what not to do. C++11 would probably have lambdas regardless of boost; their importance and the difficulties in implementing them in a language like C++ were well understood already.
The paper lists down the limitations of a library based lambda solution and why we need lambda in the language. While I agree that C++11 would probably have lambdas regardless of boost, I'm quite sure that the development of Bind, Lambda, Phoenix and FC++ was instrumental in the development of C++ lambda. At least 3 of the authors were proponents and/or authors of library based lambda solutions. Regards, -- Joel de Guzman http://www.boostpro.com http://boost-spirit.com