Blog

Perl6 でリストから無限リストをつくる

問題

my @a = <yellow red green> のようなリストから 'yellow', 'red', 'green', 'yellow', 'red', 'green', ..* のような無限リストを作りたい。

答え

my @list1 = <a b c>; my @list = map {@list1[$_ % @list1.elems]}, (0..*); say @list[42..50] のようにすれば良い。

まとめ

#[email protected] で質問して答えを得たが、ちょっとむずかしすぎるなあという印象。 本当は <a b c> x * でやりたかった。

追記

my $list = (|<a b c> xx *); say $list[40..50]; で良いとのことになりました。