>>35 ん? pythonの内包表記は即座にリストとして展開されるよ [ x ** 2 for x in range(10) if x%2 == 0 ] みたいに角かっこで書くやつね ( x ** 2 for x in range(10) if x%2 == 0 ) みたいに丸かっこで書くとgenerator式になる
Luaで真似事しようとするとこんな感じ? function LC(f) local t = {} for x in coroutine.wrap(f) do table.insert(t, x) end return t end -- rangeの実装は省略 local t = LC(function () for x in range(10) do coroutine.yield(x ^ 2) end end)
>45 やるとしたらそんな感じだろうね でも、内包表記って言うよりはmapみたいな雰囲気になっちゃうよね 内包表記って数学の集合みたいに宣言的に記述できるってところがメリットのひとつだからなぁ 数学だとこんな感じ? S = { x^2 | x ∈ N, x < 10, x mod 2 = 0 } やっぱり言語としてサポートしないとつらそう