用于抑制接收器上下文的自定义运算符

Hol*_*lli 6 raku

multi sub infix:<*>( Numeric $i, Block $b ) { &$b($_) for ^($i.Int); }
3 * { .say };
Run Code Online (Sandbox Code Playgroud)

产量

Useless use of "*" in expression "3 * { .say }" in sink context
Run Code Online (Sandbox Code Playgroud)

我如何摆脱它并使我的操作员工作?我知道我可以将它分配给$其他东西,但我不想要那样。

rai*_*iph 8

将此行添加到代码的开头:

proto sub infix:<*> ( | --> Nil ) {*}
Run Code Online (Sandbox Code Playgroud)

我的回答不可能放在水槽上下文中的地图一点点在--> Nil这部分(与不着边际的东西勿庸置疑沿太),包括拉里·2012评论:

--> Nil 似乎只是为了它的副作用而完成的程序的很好的文档

  • 也许值得一提的是,通过声明一个新的“proto”,所有现有的“infix:&lt;*&gt;”候选者都会被隐藏。 (5认同)