
22 Jul
2009
22 Jul
'09
noon
I need to take some elements from the front of a list. However the criteria are somewhat complex.
walk f [] = [] walk f (x:xs) = case f x of Just g -> x : walk g xs Nothing -> []
For each item the `predicate' f either returns Nothing, when it thinks we should not take any more elements, or return Just another `predicate' to apply to the next element. However the type system does not like my function. How can I mollify it?