4. Iterators(upto)
Iteratorって何の役に立つんじゃい!!なんて思ってたけど、読んでみると遅延評価そのままやん!!
とりあえず本に書いてあった利点をリスト。
- 巨大なリストを作らなくて済むので省メモリ
- 深さ優先、幅優先のどちらでも探索が可能(再帰だと深さ優先になる)
あとは、例題。
#!/usr/bin/env perl sub upto { my ($m, $n) = @_; return sub { return $m <= $n ? $m++ : undef; }; } my $it = upto(3, 10); while (defined(my $val = $it->())) { print "$val\n"; }