На этом шаге мы рассмотрим функционалы этого типа.
Перечислим функционалы этой группы.
1. Функционал, возвращающий True, если все элементы заданного списка удовлетворяют заданному предикату:
all:: (a -> Bool) -> [a] -> Bool all p lst
> all (1=) [] > all (0>) [1,-2,3,-4] > all (0<=) [0,1,2,3,4] False False True
2. Функционал, возвращающий True, если некоторые элементы заданного списка удовлетворяют заданному предикату:
any:: (a -> Bool) -> [a] -> Bool any p lst
> any (1=) [] > any (1=) [1,1,1,1] > any (0<=) [0,1,2,3,4,5] False True True
>>> apply(lambda x,y: x+y,[2,3]) 5 >>> map(lambda x: x+1,[1,2,3]) [2,3,4] >>> filter(lambda x: x>0,[1,-2,-3]) [1]
Репутация языка Python как языка, поддерживающего функциональное программирование, могла возникнуть в результате наличия в нём lambda, map, filter и reduce, но это всего лишь синтаксические украшения, а не основные конструктивные элементы, как в функциональных языках. Более фундаментальным свойством языка Python, общим с языком Lisp, является представление функций в качестве объектов первого класса, которые легко передавать, как и всякие другие объекты.
На следующем шаге мы рассмотрим функционал для организации итерации.