Haskell始めました
length' [] = 0 length' (_:xs) = 1 + length' xs sum' [] = 0 sum' (x:xs) = x + sum' xs product' [] = 1 product' (x:xs) = x * product' xs take' _ [] = [] take' n _ | n < 1 = [] take' n (x:xs) = x : take' (n - 1) xs drop' _ [] = [] drop' n xs | n < 1 = xs drop' n (_:xs) = drop' (n - 1) xs reverse' [] = [] reverse' (x:xs) = reverse' xs ++ [x] main = do -- リストの長さ print $ length' [1,2,3,4,5] -- 5 -- 総和 print $ sum' [1,2,3,4,5] -- 15 -- 階上 print $ product' [1,2,3,4,5] -- 120 -- 先頭2件を抽出 print $ take' 2 [1,2,3,4,5] -- [1,2] -- 先頭2件を除いたものを抽出 print $ drop' 2 [1,2,3,4,5] -- [3,4,5] -- 逆順 print $ reverse' [1,2,3,4,5] -- [5,4,3,2,1]
qiita.com
今回はこちらの記事を参考に進めてます
Haskell初心者でもわかりやすい記事に感謝
Haskell は数学だと聞いてたけどそれでも予想以上に数学色が強い
けどまぁ関数型言語を学ぶいいきっかけになったかなと
関数型が万能ってわけじゃないんだろうけどオブジェクト思考からのパラダイムもあるはずだから
早めに覚えておいたほうがなにかとうまく立ち回れそう
いま流行りの「理想の彼氏」を私も描いてみた! pic.twitter.com/olL3yX6Qs1
— ちょまど@プログラマ兼マンガ家 (@chomado) May 3, 2013
こんな風になりたぁい