标签: perl6-junction

双连接参数交换边

我对双连接应该如何工作感到困惑.

这有点道理:

say all('a', 'b', 'c') ~ any('d', 'e');
Run Code Online (Sandbox Code Playgroud)

all(any(ad, ae), any(bd, be), any(cd, ce))
Run Code Online (Sandbox Code Playgroud)

这没有意义:

say any('a', 'b', 'c') ~ all('d', 'e');
Run Code Online (Sandbox Code Playgroud)

all(any(da, db, dc), any(ea, eb, ec))
Run Code Online (Sandbox Code Playgroud)

这让我感到困惑,因为我希望在字母'd'左边的字母'a'现在在右边.

perl6 perl6-junction raku

13
推荐指数
1
解决办法
243
查看次数

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

将一个添加到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)

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

perl6 perl6-junction raku

9
推荐指数
1
解决办法
224
查看次数

在哪里定义contains(Junction)?

此代码有效:

(3,6...66).contains( 9|21 ).say  # OUTPUT: «any(True, True)?»
Run Code Online (Sandbox Code Playgroud)

并返回Junction。它也经过测试,但没有记录。问题是我在任何地方都找不到它的实现。也从Cool调用的Str代码从不返回Junction(也不采用Junction)。源代码中没有其他方法contain。由于它是自动线程化的,因此可能是在某个地方专门定义的。我不知道在哪里。有什么帮助吗?

perl6 perl6-junction

8
推荐指数
1
解决办法
110
查看次数

在Perl 6中,我如何复制Perl的List :: Util :: all的行为?

我试图使用一个Junction来复制我在Perl中习惯的行为List::Util::all.

all在以下语句中使用联结:

# does not work
return not know(@possible-dates) and not know tell day all(@possible-dates);
Run Code Online (Sandbox Code Playgroud)

不知道这些函数是做什么的,我假设这个陈述等同于以下内容:

# works
my Bool $r = not know @possible-dates;
for @possible-dates -> $date {
  $r = $r && not know tell day $date;
}

return $r;
Run Code Online (Sandbox Code Playgroud)

for循环版本返回正确的结果,结点版本没有,我试图理解为什么.

下面的完整代码告知所有功能的作用:

my @dates = <May 15>, <May 16>, <May 19>, <June 17>, <June 18>, 
  <July 14>, <July 16>, <August 14>, <August 15>, <August 17>;

sub day (@date) { @date[1] }
sub …
Run Code Online (Sandbox Code Playgroud)

perl6 perl6-junction

7
推荐指数
1
解决办法
143
查看次数

可以使用收集来展开Junctions吗?

在此程序中:

use v6;
my $j = +any "33", "42", "2.1";
gather for $j -> $e {
    say $e;
} # prints 33?42?2.1?

for $j -> $e {
    say $e; # prints any(33, 42, 2.1)
}
Run Code Online (Sandbox Code Playgroud)

如何gather在眼前for变化的结的行为,允许建立在它的循环?该文档似乎并不反映该行为。那是规格吗?

perl6 perl6-junction raku

7
推荐指数
1
解决办法
103
查看次数

标签 统计

perl6 ×5

perl6-junction ×5

raku ×3