id:chmod:20060927:1159360049
Haskellだとループの構文すらありませんからねー。
階乗を計算するプログラムを素直に実装すると、こんな感じになります。数学の定義そのままでしょ?
ファイル: fact.hs
import System
fact :: Integer -> Integer
fact 0 = 1
fact n = n * fact (n - 1)
main = print . fact . read . head =<< getArgs
以下、実行例です。
$ runghc fact.hs 5
120