如果我在raku中有以下程序,它会运行得很好:
trabajando-en-piensa-en-raku on master [?] via v2.6.5
❯ cat factorial.raku
sub factorial( $n ) {
[*] 1 .. $n;
}
sub postfix:<!>( $n ) {
[*] 1 .. $n;
}
my $n = 5;
say "El factorial de $n es {factorial $n}";
say "Si calculamos $n! obtenemos {$n!}";
trabajando-en-piensa-en-raku on master [?] via v2.6.5
❯ raku factorial.raku
El factorial de 5 es 120
si calculamos 5! obtenemos 120但是,如果我在raku REPL中定义了这个函数,就会得到:
> * * &factorial
> 5
> El factorial de 5 es 120它的工作正常和预期的阶乘函数,但我得到了这个!接线员:
> * * &postfix:<!>
> ===SORRY!=== Error while compiling:
Negation metaoperator not followed by valid infix
------> say "Si calculamos $n! obtenemos {$n!⏏}";
expecting any of:
infix
infix stopper我需要一个特殊的sintax以便在raku REPL中定义操作符,或者取决于环境是如何加载的。
我用的是OSX卡塔莉娜
trabajando-en-piensa-en-raku on master [?] via v2.6.5
❯ rakubrew versions
system
moar-2020.07
* moar-2020.08.2发布于 2020-10-22 08:54:31
恐怕处于当前状态的REPL在一些Raku特性方面存在一些缺陷,例如本机变量和操作符定义,如果在多行中执行,则为。
目前,REPL基本上正在为每一行执行一个EVAL语句,在调用之间没有共享足够的信息。这种情况在短期内不会改变。明年的某个时候,当拉奎斯特分店落地时,情况可能会好转。
https://stackoverflow.com/questions/64477562
复制相似问题