ループと再帰

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