Haskell勉強会#5.1

昨日に引き続き、今日は Lingr 上でぷち勉強会。

基本的には、昨日来てた人は続きを、これなかった人はコーディングで使った課題に挑戦、という感じだった。

私は、昨日のピラミッドの続きをうにゃうにゃと。中途半端だった、引数を数字で受けとる方法を教えてもらって、最終的にはこんなコードに。

import System
main = do args <- getArgs
          putStr $ concatMap (pyrStep $ argToInt args) [1..argToInt args]

argToInt :: [String] -> Int
argToInt str = read $ head str :: Int

pyrStep :: Int -> Int -> String
pyrStep m n = replicate (m - n) ' ' ++ replicate (2 * n - 1) '*' ++ ['\n']

syntaxを聞いただけなのでよくわからないけど、

read str :: 型

で、strを型扱いで読むって動きをするようだ。

おー、期待通りに動くじゃないですか。素晴らしい。