假設我有一個序列,我知道開始點和結束點,並且生成器很簡單。我可以讓它懶嗎?在Perl 6中可以使用有限的列表嗎?
my @b = 0 ... 3;
say 'Is @b lazy? ' ~ @b.is-lazy; # Not lazy
我想組合已知列表與自己未知次數,但不立即生成整個列表。我想@cross
偷懶:
my @cross = [X] @b xx $n;
我知道我可以通過其他簡單的事項或編程(和我的Perl 5 Set::CrossProduct就是這樣做的)做到這一點,但我很好奇,如果有一些簡單的和預期的方式我錯過了。某種方式不涉及我依靠自己的方式。
作爲一個側面問題,序列的特徵是什麼讓它變得懶惰?它只是端點嗎?是否有一個已知端點的序列,如果生成器可以在兩者之間創建無限值,那麼該序列仍然可以是惰性的?我不知道我是多麼的信息必須刪除,並試圖像這樣:
my $m = @*ARGS[0];
my @b = 0, * + $m ...^* > 3;
say 'Is @b lazy? ' ~ @b.is-lazy;
say '@b: ' ~ @b;
不過,這更是不可以偷懶。
呵呵。我確信我嘗試過。謝謝! –