
David Abrahams wrote:
Vladimir Prus <ghost@cs.msu.su> writes:
I was rather exited about FP some years ago when I first exposed to the concept. I've experimented for some time, and now I'm not as excited. While
max_element(my_namespace::transform(some_container, functor));
does save some typing, it might negatively affect compile time. And if 'functor' is tryly polymorphic (i.e. has templated operator()), you can get the the point when all the application is one big translation unit full of templates.
You say that like it's a *bad* thing.
Sometimes it is. I really wish my compile times were smaller.
Seriously, what do you think a Spirit parser is? There are domains for which it's appropriate/effective to use a "library that thinks it's a compiler" (c.f. http://oonumerics.org/blitz/)
I agree such domains exist. And Blitz is one example -- where the point is the get maximum performance with resonable syntax. But I'm not sure where FC++ can be beneficially used, given that my project takes 5 mins to compile and I don't want to wait that long every single time. Is FC++ usefull for performance critical parts -- I don't see any reason for that? Or for complex algorithmic parts? Or for what? To put it really simple, all I know about FP in general is that one article shows very nice way to compute derivatives using lazy lists, and than transposing a matrix is terribly complex (and probably terrible slow). That's not enough information to decide when to use FP. - Volodya