为什么+和〜以不同的方式影响Perl 6结点?

bri*_*foy 9 perl6 perl6-junction raku

将一个添加到Ints的交汇点:

put any( 1, 3, 7 ) + 1;
Run Code Online (Sandbox Code Playgroud)

现在你有一个Ints增加了一个的交汇点:

any(2, 4, 8)
Run Code Online (Sandbox Code Playgroud)

所以,2 == any(2, 4, 8)是的.

建立字符串连接并附加到这些字符串:

put any( <h H> ) ~ 'amadryas';
Run Code Online (Sandbox Code Playgroud)

你会得到一个不同于'hamadryas'或'Hamadryas'的不同结果:

any("h", "H")amadryas
Run Code Online (Sandbox Code Playgroud)

我期待的是:

any( 'hamadryas', 'Hamadryas' );
Run Code Online (Sandbox Code Playgroud)

这些操作有什么不同,即使它们应该是相似的,它们也能给出不同的行为?

che*_*nyf 1

在 High Sierra 10.13 上, put 失败并显示:

put any( 1, 3, 7 ) + 1
Run Code Online (Sandbox Code Playgroud)

此类型无法拆箱为本机字符串:P6opaque,第 1 行块中的连接点

perl6 -v
Run Code Online (Sandbox Code Playgroud)

这是 Rakudo Star 版本 2017.10,基于 MoarVM 版本 2017.10 构建,实现 Perl 6.c。