
23 May
2011
23 May
'11
1:49 p.m.
On Mon, May 23, 2011 at 9:20 AM, michael rice
What's the best way to end up with a list composed of only the Just values, no Nothings?
Michael
==========================
import Control.Monad.State import Data.Maybe
type GeneratorState = State Int
tick :: GeneratorState (Maybe Int) tick = do n <- get if ((n `mod` 7) == 0) then return Nothing else do put (n+1) return (Just n)
{- *Main> evalState (sequence $ replicate 9 tick) 1 [Just 1,Just 2,Just 3,Just 4,Just 5,Just 6,Nothing,Nothing,Nothing] -}
There's a library function for it, but also:
filter ((/=) Nothing)
is readable enough.