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 は数学だと聞いてたけどそれでも予想以上に数学色が強い
けどまぁ関数型言語を学ぶいいきっかけになったかなと

関数型が万能ってわけじゃないんだろうけどオブジェクト思考からのパラダイムもあるはずだから
早めに覚えておいたほうがなにかとうまく立ち回れそう

こんな風になりたぁい