
On Monday, September 05, 2011 11:12:17 AM Dave Abrahams wrote:
on Mon Sep 05 2011, Thomas Heller <thom.heller-AT-googlemail.com> wrote:
On Mon, Sep 5, 2011 at 1:28 PM, Daniel James <dnljms@gmail.com> wrote:
On 5 September 2011 12:10, Maxim Yanchenko
I'm on Dave's side here: we should be explicit about the time when we want to trigger actual evaluation.
The problem is that existing generic algorithms won't trigger evaluation, so currying couldn't be used with, say, std::transform. That's why I would make partial application explicit, with a normal function call causing evaluation. But I think that was considered too verbose.
Actually, that is not the case. If you take phoenix, bind or lambda, and call the resulting functor with not enough arguments it will give you a pretty ugly error. And this is what the currying is about ... return another functional if the supplied arguments aren't enough to evaluate the lazy function object. What you mean is you supply too much arguments. Which won't be affected.
I don't think you're understanding what he means at all.
Sorry, missed the part about triggering the evaluation explicitly.