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]
のようにすれば良い。
まとめ
#perl6@irc.freenode.org で質問して答えを得たが、ちょっとむずかしすぎるなあという印象。
本当は <a b c> x *
でやりたかった。
追記
my $list = (|<a b c> xx *); say $list[40..50];
で良いとのことになりました。
Published: 2015-12-19(Sat) 10:14