括弧無しゴルフ in Haskell

新しい制限が加わっていますね。
ということで角括弧もなくします。

main = mapM_ uncurryp $ take 21 $ zip from0 $ scanl times 1 from1
  where
    p i n = putStrLn $ show i ++ "! = " ++ show n 
    uncurryp = uncurry p 
    times a b = a * b 
    from1 = numsFrom 1 
    from0 = numsFrom 0 

-- 連番リスト生成
numsFrom n = cons n . numsFrom . inc $ n 
  where
    cons a b = a : b 
    inc n = n + 1 

なんとなくHaskellはいくらでも括弧なくせそうな気がします。


連番リストは普通なら次のように書きます。

numsFrom n = n : numsFrom (n+1)

まあ[0..]とかでいいんですが。