ListUtil.hs
getEvenNumbers :: [Integer] -> [Integer] getEvenNumbers [] = [] getEvenNumbers (x:xs) | even x = x : getEvenNumbers xs | otherwise = getEvenNumbers xs
*Main> :load ListUtil.hs [1 of 1] Compiling Main ( ListUtil.hs, interpreted ) Ok, modules loaded: Main. *Main> *Main> getEvenNumbers [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [0,2,4,6,8,10] *Main> *Main> getEvenNumbers [] [] *Main>
We can rewrite the
above program-using filter in a convenient way.
*Main> :t filter
filter :: (a ->
Bool) -> [a] -> [a]
Observe the signature
of filter, it takes a function, list of elements of type ‘a’ as input and apply
the function on list of elements and return new list of elements that satisfy
given function (a -> Bool).
*Main> filter even [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [0,2,4,6,8,10] *Main> *Main> filter even [] [] *Main>
No comments:
Post a Comment