作者: 機械伯爵
日時: 2009/5/7(16:37)
 機械す。

> Haskell別解。
> 
> >ghci
> GHCi, version 6.8.2: http://www.haskell.org/ghc/  :? for help
> Loading package base ... linking ... done.
> Prelude> foldl (\x y -> x * y) 1 $ take 10 [1..]
> 3628800
> Prelude> foldl (*) 1 $ take 10 [1..]
> 3628800
> Prelude>

 GHCiでは関数定義が出来ないということでしたが、なるほど、こうやれば
これはこれで使えますね。

> 関数に仕立てるとこうかな
> 
> ffact :: Int -> Int
> ffact n
>     | n == 0  = 1
>     | n > 0   = foldl (*) 1 $ take n [1..]
>     | otherwise = error "invalid value"

 テキスト的には、こういう例が多いですよね。
 それにしても改めて、Haskellの記述って、普通の手続き式やS式、
それにSmalltalkのオブジェクト式なんかより、人間の自然の思考に
近いのかな……とふと思いましたが、良く考えてみれば、コレ、
数学の式そのままじゃん(笑)

※数学は自然じゃない自然じゃない(笑)

 /機械伯爵/