LINUX.ORG.RU

История изменений

Исправление qnikst, (текущая версия) :

поскольку any не было в списке разрешенного, то:

any1 :: (a -> Bool) -> [a] -> Bool
any1 f = foldr (\n o -> f n || o)  -- или, что тоже самое foldr ((||) . f)

менее красивое, но более понятное:

any2 :: (a -> Bool) -> [a] -> Bool
any2 f = not . null . filter f 

-- или, что тоже самоме 
-- any2 = (((not . null) .) .) . filter

Ну и если филосовствовать, то все функции работы над списком это foldr :)

Исходная версия qnikst, :

поскольку any не было в списке разрешенного, то:

any1 :: (a -> Bool) -> [a] -> Bool
any1 f = foldr (\n o -> f n || o)  -- или, что тоже самое foldr ((||) . f)

менее красивое, но более понятное:

any2 :: (a -> Bool) -> [a] -> Bool
any2 f = not . null . filter f

Ну и если филосовствовать, то все функции работы над списком это foldr :)