Open zoffixznet opened 6 years ago
I'm trying to solve this issue, and the main problem I'm finding is that I'm not sure currying is used properly here. In general, it translates the evaluation of a function with multiple arguments to the evaluation of a sequence of functions with single arguments. That's the general idea. In this case, I can't even see where are the placeholders for "functions" and "arguments". Whatever is a class, it it's used as a term it might make the whole construct a WhateverCode; WhateverCode is actually a functor. Functors are effectively curried when they receive arguments. So I guess we're talking about two different processes here: when and how Whatever (or HyperWhatever) are functorized (not curried, they are not functions) and when WhateverCode is curried. Am I too far off mark?
If they were currying I'd expect this to work : my &f = * + *;my &g = &f(2);say &g(2)
That's the other part of the issue, the "stored whatever". But that's right, it's not clear where the concept of currying fits here.
Glancing at the intro section on https://docs.perl6.org/type/Whatever I notice a couple of problems.
"stored *"
only to backtrack on it and try to explain that curry already happened before it.* ≥ * ≥ *
,*.uc ~~ *
,*.uc xx *.abs
etc. In code form (and should already be fairly covered by spec) the list of what decisions are made is encoded here. I think this full information can replace the current second portion of the description.Update with a couple more comments on the subject: http://colabti.org/irclogger/irclogger_log/perl6?date=2018-09-26