遅延評価は分かったけど
具体的に使ってみないことには「便利!!」と感動できないので。
毎日ちょっとだけ暇見つけて Haskell を勉強してみよう
はじめてのプログラミング
僕は、初めてプログラムを書くとき、閏年を考慮した月の日数計算をするプログラムを書いてみることにしている。
そして、何も読まずに Google で検索しながら使えそうなコードを拾って寄せ集めて書いてみる。
最初は汚いコードでいいんだ!
とりあえず、感覚を掴むまで文法の勉強をしない。
で、とりあえず完成はした
import System main = do args <- getArgs putStrLn $ show $ dayof $ map read args dayof [y, m] | m == 1 = 31 | m == 3 = 31 | m == 2 = if mod y 400 == 0 then 29 else if mod y 100 == 0 then 28 else if mod y 4 == 0 then 29 else 28 | m == 4 = 30 | m == 5 = 31 | m == 6 = 30 | m == 7 = 31 | m == 8 = 31 | m == 9 = 30 | m == 10 = 31 | m == 12 = 31
感想
- show 関数と read 関数を見つけるのにすごく時間がかかった。
- getArgs の IO [String] という型が気になる。
- なんか、関数をつなぐ $ はパイプみたいだな。
- 関数を = で定義するのは理にかなってる気がする