Parameters perl6将运算符作为参数传递
我试图通过定义和传递原始运算符来实现一些类似于Scheme的功能。在Scheme中,您可以Parameters perl6将运算符作为参数传递,parameters,arguments,operators,raku,Parameters,Arguments,Operators,Raku,我试图通过定义和传递原始运算符来实现一些类似于Scheme的功能。在Scheme中,您可以 (define x +) (x 1 2) 这个操作会给你答案3。在perl6中,我必须以某种方式将运算符置于另一个函数中,以实现相同的效果: sub x($a) { $a * 2; } sub y($m, $n) { $m($n); } say y(&x, 3); # gives you 6 say y(+, 3) # this is error 是否有一种简单的方法来传递运算符和函数 谢谢。
(define x +) (x 1 2)
这个操作会给你答案3。在perl6中,我必须以某种方式将运算符置于另一个函数中,以实现相同的效果:
sub x($a) { $a * 2; }
sub y($m, $n) { $m($n); }
say y(&x, 3); # gives you 6
say y(+, 3) # this is error
是否有一种简单的方法来传递运算符和函数
谢谢。我不做计划,但是
(define x +)
应该对应于
my constant &x = &infix:<+>;
也将输出3
如果您发现上面使用的规范名称过于繁琐,还可以使用简写符号&[+]
来传递运算符
请注意,我不完全确定您想用Perl6代码做什么,因为这看起来与Scheme代码片段大不相同。谢谢您,Christoph!!“常量”和“&[+]”对我来说都是新概念。我今天学到了一些东西!非常感谢。
say x(1,2)