落書きノート

ふと自分が気になった事を書いてます

Haskellで問題を解く

Emacsでガリガリやろうかなと思ったら、凄く短い問題ばかりなので、ghciでやることにしました。練習問題はこのサイトです。

H-99: Ninety-Nine Haskell Problems - HaskellWiki

-- q1
Prelude> myLast lists = last lists
Prelude> myLast [1,2,3,4]
4
Prelude> myLast ['x','y','z']
'z'
-- q2
Prelude> myButLast lists = last (init lists)
Prelude> myButLast [1,2,3,4]
3
Prelude> myButLast ['a','b','y','z']
'y'
-- q3
Prelude> elementAt lists index = lists !! (index - 1)
Prelude> elementAt [1,2,3] 2
2
Prelude> elementAt "haskell" 5
'e'
-- q4
Prelude> myLength lists = length lists
Prelude> myLength [123,456,789]
3
Prelude> myLength "Hello, world!"
13
-- q5
Prelude> myReverse lists = reverse lists
Prelude> myReverse "A man, a plan, a canal, panama!"
"!amanap ,lanac a ,nalp a ,nam A"
Prelude> myReverse [1,2,3,4]
[4,3,2,1]