6

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

raku REPL で演算子を定義するには、特別なシンタックスが必要です。または、環境のロード方法によって異なります。

OSX Catalinaで使用しています

trabajando-en-piensa-en-raku on  master [?] via  v2.6.5
❯ rakubrew versions
  system
  moar-2020.07
* moar-2020.08.2
4

1 に答える 1