Haskellで九九

手続き型言語では、オブジェクト指向全盛になった今もついループで書いちゃう九九。
じゃあ、ループじゃない書き方ってどんなだろう?と思ったので書いてみた。

import Text.Printf

kuku =putStr $ concat [nineLines x y | x <- [1..9], y <- [1..9]]
    where
        nineLines :: Int -> Int -> String
        nineLines x 9= printf "%2d\n" (x * 9)
        nineLines x y= printf "%2d " (x * y)

うん。普通にLLでも書けますね。
でも、何故か書かない。
そんなコードでした。