在perlgeek 上的这篇文章之后,它给出了一个柯里化的例子:
my &add_two := * + 2;
say add_two(5); # 7
说得通。但是,如果我将中缀运算符换成中+
缀运算min
符:
my &min_two := * min 2;
say min_two(5); # Type check failed in binding; expected 'Callable' but got 'Int'
即使尝试+
通过infix
语法调用也会失败:
>> my &curry := &infix:<+>(2, *);
Method 'Int' not found for invocant of class 'Whatever'
我是否需要将Whatever限定为数值,如果需要,如何?还是我完全错过了重点?
[根据新 rakudo 的回复编辑;上面的版本字符串:perl6 version 2014.08 built on MoarVM version 2014.08
]