Fe2+ です。
At Wed, 3 Oct 2007 08:34:52 +0900 (JST),
機械伯爵 wrote:
> ……一発目で、話がいきなりズレましたね(汗)
>
> 私は、「変数を使ってもわかりやすい」から始まって、「どんなタイプの
> プログラミングスタイルへ誘導したらよいか」という話題を振りたいための
> スケッチ(NHK言語講座で言うならスキット)のつもりだったんですが……
ある意味、関数型プログラミングスタイルへの誘導なのでは。
> 一応、py3k版(+プチ改良)を。
>
> from functools import reduce
> ans = reduce(lambda v, f: f(v),(
> 1,
> lambda v: v * 2,
> lambda v: v * 3,
> lambda v: v * 4,
> lambda v: v * 5,
> lambda v: v * 6))
>
> print(ans)
ちゃちゃですが、reduce に渡しているシーケンスで初期値と関数という異質な
ものが並んでいるのは気持ち悪いので、初期値は reduce の第3引数に渡した方
が良いと思います。
上の例を見て(使い捨て)階乗関数を(無意味に)経由してみた例
(Python 2.4以上(py3k では print,reduce に注意)):
print (lambda n: (reduce(lambda v, f: f(v),
((lambda v: v * i) for i in range(2, n + 1)),
1)))(6)
# Haskell まであと一歩(なのかな?)
--
MATSUI "Fe2+" Tetsushi