Haskell Hello World

Da Andreabont's Wiki.

Dato che haskell è un linguaggio funzionale, quale miglior hello world del calcolo del fattoriale?

Codice

import System.Environment   
import Data.List  

fac :: Integer -> Integer
fac 0 = 1
fac n = n * fac (n - 1)

getIntArg :: IO Integer
getIntArg = fmap (read . head) getArgs
 
main = do  
    args <- getIntArg  
    print $ fac(args)

Compilare

ghc HelloWorld.hs