Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,22 @@
import Control.Monad.State
type Stack a b = State [a] b
push :: a -> Stack a ()
push = modify . (:)
pop :: Stack a a
pop = do
nonEmpty
x <- peek
modify tail
return x
empty :: Stack a Bool
empty = gets null
peek :: Stack a a
peek = nonEmpty >> gets head
nonEmpty :: Stack a ()
nonEmpty = empty >>= flip when (fail "Stack empty")