首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在raku REPL中定义后缀操作符的问题

在raku REPL中定义后缀操作符的问题
EN

Stack Overflow用户
提问于 2020-10-22 07:45:55
回答 1查看 132关注 0票数 6

如果我在raku中有以下程序,它会运行得很好:

代码语言:javascript
复制
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中定义了这个函数,就会得到:

代码语言:javascript
复制
> * * &factorial
> 5
> El factorial de 5 es 120

它的工作正常和预期的阶乘函数,但我得到了这个!接线员:

代码语言:javascript
复制
> * * &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卡塔莉娜

代码语言:javascript
复制
trabajando-en-piensa-en-raku on  master [?] via  v2.6.5
❯ rakubrew versions
  system
  moar-2020.07
* moar-2020.08.2
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-22 08:54:31

恐怕处于当前状态的REPL在一些Raku特性方面存在一些缺陷,例如本机变量和操作符定义,如果在多行中执行,则为

目前,REPL基本上正在为每一行执行一个EVAL语句,在调用之间没有共享足够的信息。这种情况在短期内不会改变。明年的某个时候,当拉奎斯特分店落地时,情况可能会好转。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64477562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档