perl6 – Perl 6中的连接列表

前端之家收集整理的这篇文章主要介绍了perl6 – Perl 6中的连接列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一个更简单的解决方案.

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

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

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

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

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

解决方法

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

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

  1. say do for @roots -> $root {
  2. |do for (@prefixes Z @suffixes) -> [$prefix,$suffix] {
  3. $prefix ~ $root ~ $suffix
  4. }
  5. }

猜你在找的Perl相关文章