イテレーターと普通のループとどう違うのかがイマイチ分かってなかった。んで本を読んでたら
イテレーターというのは、制御構造を関数として提供するものだ。・・・ループは関数の中に隠れており<・・・
とあって
def myeach(ary) for val in ary yield val end end ary = [0, 1, 2] myeach(ary){|i| print i , "\n"}
というrubyのコードと
sub myeach{ my ($ary , $sub) = @_; foreach (@$ary){ &$sub($_); } } my $ary = [0, 1, 2]; my $sub = sub{ my ($i) = @_; print "$i\n"; }; myeach $ary , $sub;
というPerlのコードを読んで、ようやく皮膚感覚で理解できた。なるほげ。抽象化ってのはすばらしいものですね。
- 作者: 吉田和弘
- 出版社/メーカー: オーム社
- 発売日: 2003/04
- メディア: 単行本
- 購入: 1人 クリック: 1回
- この商品を含むブログ (5件) を見る