Has anyone from this board actually written anything of note
? I, for example, am the inventor of Haskell, and have been a longtime /prague/ lurker. What have you ever done?
Name:
Anonymous2013-12-11 4:56
From rosetta code:
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))