続・縦書きのさらに続き
Arrowで書き直してみた
import List import Control.Arrow main = getContents >>= arr (lines >>> reverse >>> normalize >>> transpose >>> unlines >>> putStrLn) -- 長さを同じにする normalize = (maximum . map length &&& map (++ repeat ' ')) >>> uncurry (map . take)