サンプルで練習

ふつうのHaskellプログラミングは最後の方は眺めただけで一旦終了。いくつかサンプルのプログラムを書いて練習しようと思います。

今回の題材はピラミッドを作る。こんなのを書きました。

import System

defaultLevel = 4

main = do
  args <- getArgs
  do
    let level = if args == [] then defaultLevel else read $ head args
    putStr $ unlines $ take level $ map (floorStr level) [1..]

floorStr :: Int -> Int -> String
floorStr max current = replicate (max - current) ' '
                       ++ replicate (current * 2 - 1) '*'

コマンドラインパラメータの受け取りの方が苦労してしまいました。