shokosブログ

プログラミング

HaskellでStack実装

HaskellでStackを実装しました。
参加する予定だった初心者Haskell勉強会第3回 - [PARTAKE]の宿題になっていたやつです(結局いけなかったのだけど)

data Stack a = Stack [a]
	deriving (Show)

empty :: Stack a
empty = Stack [] 

isEmpty :: Stack a -> Bool
isEmpty (Stack []) = True
isEmpty _ = False

push :: a -> Stack a -> Stack a
push x (Stack xs) = Stack (x:xs)

pop :: Stack a -> (a, Stack a)
pop (Stack (x:xs)) = (x, Stack xs)

Haskellのインデントルールよくわからないので、見る人によってはキモイかも。
なにかアドバイスあったら教えてくだしあ><


あと6/3で25歳になりました!おめでとうわたし!