作者: Bruce.
日時: 2007/10/2(17:03)
Bruce.です。

ジャアクな回答ですので使用禁止 :)


機械伯爵 writes:

>  さて、あなたはどうしますか?
> 
> ※例に挙がってるのはPythonですが、入門者の誘導、という話題で……
>  もしよければ、他の言語で似たようなネタ、書いてください(笑)


def f0(v): return v*2
def f1(v): return v*3
def f2(v): return v*4
def f3(v): return v*5
def f4(v): return v*6

print reduce(lambda v, f: f(v), [1, f0, f1, f2, f3, f4])


Ruby版
puts [proc{|v| v*2}, proc{|v| v*3}, proc{|v| v*4}, proc{|v| v*5}, proc{|v| v*6},].inject(1){|r, f| r = f.call(r)}


実はRuby版が先にできました。
Pythonには injectってねーなーと悩むことしばし。

Ruby版では、最初に def で関数定義したものの名前を配列要素に並べて
失敗したのはナ・イ・ショ :)

いじょ。

#次はHaskellでやってみやう