加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl6 – Perl 6中的连接列表

发布时间:2020-12-15 21:54:32 所属栏目:大数据 来源:网络整理
导读:我正在寻找一个更简单的解决方案. 我有一个带有相应后缀的前缀列表和一个根列表. my @prefixes = 'A'..'E';my @suffixes = 'a'..'e';my @roots = 1,2; 我想做出所有可能的’单词’:A1a,B1b …… A2a …… E2e. my @words;for @roots - $r { for @prefixes.k
我正在寻找一个更简单的解决方案.

我有一个带有相应后缀的前缀列表和一个根列表.

my @prefixes = 'A'..'E';
my @suffixes = 'a'..'e';
my @roots = 1,2;

我想做出所有可能的’单词’:A1a,B1b …… A2a …… E2e.

my @words;
for @roots -> $r {
    for @prefixes.kv -> $i,$p {
        my $s = @suffixes[$i];
        my $word = [~] $p,$r,$s;
        @words.push: $word;
    }
}
say @words; # [A1a B1b C1c D1d E1e A2a B2b C2c D2d E2e]

我想用zip或cross这样的东西可以更轻松地做到这一点,但无法弄清楚如何……

解决方法

还有几种方法可以编写它:
say @roots X[&join] (@prefixes Z @suffixes);
say @roots.map({ |(@prefixes Z @suffixes)?.join($_) });
say @roots.map({ (@prefixes X~ $_) Z~ @suffixes }).flat;
say (|@prefixes xx *) Z~ (@roots X~ @suffixes);
my @formats = (@prefixes Z @suffixes).flat.map(* ~ '%s' ~ *);
say @formats X[&sprintf] @roots;

(注意:这个以不同的顺序打印它们.)

say do for @roots -> $root {
    |do for (@prefixes Z @suffixes) -> [$prefix,$suffix] {
        $prefix ~ $root ~ $suffix
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读