Ruby
Enumerable#map { |item| ... }
-> [object]
配列等のオブジェクトに対し、map
メソッドを呼ぶ。Array
が返るが、Enumerable#lazy
を使って下記のように書けば、遅延評価することもできる。
val = (1..99999999).lazy.map { |i| i.to_s } => #<Enumerator::Lazy: ...> val.to_a # <= ここで実際に評価が始まるため、次の行が出力されるまで非常に時間がかかる => ['1', , ..., '99999999']
参考
Python
組み込み関数の map(function, iterable, ...)
-> イテレータ
Pythonは他の言語と違い、ArrayやListで返るのではなくイテレータ
で返る。イテレータはRubyでいうところの遅延評価のように、list()
に渡された時に初めて内部が評価される仕組みになっている。
参考
JavaScript
Array.prototype.map(function)
Array
に対し、map
を呼ぶ事で評価される。基本的にはRubyとあまり大きく変わらない。