首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >perl6/rakudo:无法解析postcircumfix:sym<( )>

perl6/rakudo:无法解析postcircumfix:sym<( )>
EN

Stack Overflow用户
提问于 2011-02-17 16:07:35
回答 2查看 159关注 0票数 5

为什么会出现此错误消息?

代码语言:javascript
复制
#!perl6
use v6;

my @a = 1..3;
my @b = 7..10;
my @c = 'a'..'d';


for zip(@a;@b;@c) -> $nth_a, $nth_b, $nth_c { ... };


# Output:

# ===SORRY!===
# Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 9
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-17 17:53:36

Rakudo还没有实现lol (“列表列表”)形式,因此不能解析@a;@b;@c。出于同样的原因,zip还没有一个接受三个列表的表单。显然,错误消息并不是那么可怕。

目前还没有很好的解决办法,但这里有一些东西可以完成这项工作:

代码语言:javascript
复制
sub zip3(@a, @b, @c) {
    my $a-list = flat(@a.list);
    my $b-list = flat(@b.list);
    my $c-list = flat(@c.list);
    my ($a, $b, $c);
    gather while ?$a-list && ?$b-list && ?$c-list {
        $a = $a-list.shift unless $a-list[0] ~~ ::Whatever;
        $b = $b-list.shift unless $b-list[0] ~~ ::Whatever;
        $c = $c-list.shift unless $c-list[0] ~~ ::Whatever;
        take ($a, $b, $c);
    }
}

for zip3(@a,@b,@c) -> $nth_a, $nth_b, $nth_c {
    say $nth_a ~ $nth_b ~ $nth_c;
}
票数 3
EN

Stack Overflow用户

发布于 2014-12-01 02:23:31

多维语法(在括号内使用; )和压缩两个以上的列表都可以工作,所以最初发布的代码现在可以工作了(如果您提供了一些真实的代码,而不是{ ... }存根代码块)。

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

https://stackoverflow.com/questions/5026451

复制
相关文章

相似问题

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