今日は笹田さんの研究室で開催だった。参加者は10人くらい?
だいたいこんな感じ。
def foo
(1..n).lazy.flat_map do |a|
(1..m).lazy.flat_map do |b|
...
end
end
end
p foo.take(10)
上のような入れ子になった Enumerable#lazy を外から take を呼んだときの動きがどうしても理解できなくてぐだぐだと絡んでいたんだけど、ActiveRecord みたいな物ですよと言われてやっと理解できた。単に内側の lazy は外の flat_map で評価されるから、take 無しでも値が取れるということらしい。だいぶわかりにくいなあ(オレが勉強不足なだけ)
次回は150回記念だけど、休日なので多分お休み。