Daha basit bir çözüm arıyorum.Perl listelerinde bulunan ürünler Birleştirme 3
karşılık gelen ekleri ve köklerin bir listesi ile öneklerin bir listesi var.
my @prefixes = 'A'..'E';
my @suffixes = 'a'..'e';
my @roots = 1, 2;
Tüm olası 'kelimeleri' yapmak istiyorum
: 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]
Ben
'(("A" .. "E," Z " bir" .. "e") X 1,2) .map (-> (($ a, $ c), $ b) {"$ a $ b $ c"}) – Christoph
veya "((" A ".." E "Z" a ".." e ") X 1,2) .flat.map (* ~ * R ~ *)', denedimceye kadar önceliğe/çağrışıma göre çalışacağından emin değildim. o ... – Christoph
@Christoph Teşekkürler! Ve gerçekten de 'Rop' 'op''den daha yüksek önceliğe sahip görünüyor. [Docs] 'da (https://docs.perl6.org/language/operators#index-entry-R_reverse_meta_operator), sadece şifreli bir ifade vardır: "İşlenenlerin birliği de tersine döndü". –