tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
16
Task/Queue-Definition/Haskell/queue-definition-1.hs
Normal file
16
Task/Queue-Definition/Haskell/queue-definition-1.hs
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
data Fifo a = F [a] [a]
|
||||
|
||||
emptyFifo :: Fifo a
|
||||
emptyFifo = F [] []
|
||||
|
||||
push :: Fifo a -> a -> Fifo a
|
||||
push (F input output) item = F (item:input) output
|
||||
|
||||
pop :: Fifo a -> (Maybe a, Fifo a)
|
||||
pop (F input (item:output)) = (Just item, F input output)
|
||||
pop (F [] [] ) = (Nothing, F [] [])
|
||||
pop (F input [] ) = pop (F [] (reverse input))
|
||||
|
||||
isEmpty :: Fifo a -> Bool
|
||||
isEmpty (F [] []) = True
|
||||
isEmpty _ = False
|
||||
Loading…
Add table
Add a link
Reference in a new issue