我对双连接应该如何工作感到困惑.
这有点道理:
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'现在在右边.
将一个添加到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)
这些操作有什么不同,即使它们应该是相似的,它们也能给出不同的行为?
我试图使用一个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) 在此程序中:
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变化的结的行为,允许建立在它的循环?该文档似乎并不反映该行为。那是规格吗?