在数学和计算机科学中,阶函数是少满下个条件的函数:
接受个或多个函数作为输
输出个函数
在数学中,阶函数也被称为运算符或函数,其他函数都是阶函数。微积分中的微分算是个常
的,因为它将个函数映射到它的导数,也是个函数。 阶函数应与整个数学中“函”这
个词的其他法混淆。
在类型的lambda演算中,所有函数都是阶的; 在个类型化的lambda演算中,多数函数式编程
语都是从这个演算中派出来的,以个函数作为参数的阶函数是具有表单类型的值
在很多函数式编程语中都能找到阶函数map,它接受个函数f作为参数,并返回接受个表并
应f到它的每个元素的个函数。
Python的内置函数 Max() 作为示,我们先来看看Max函数是如何来作的。
上的代码可以看出,max默认对元组中的第个元素,返回第个元素最的元组数据。因为
max函数是阶函数,持接收个函数作为key参数,定制对规则。
max函数是个相对简单的阶函数,Python提供丰富的阶函数集合,在后续会陆续介绍说明。
函数式编程避免使变来跟踪计算的状态,焦点需要停在可变的对象上。所以在函数式编程中
泛使tuples和namedtuples来提供复杂的、可变的数据结构。 可变对象的思想对Python来说
并陌,使可变元组代替复杂的可变对象会有性能优势。在某些情况下,好处在于重新考虑
算法,以避免对象变异的代价。
在函数式编程中般会完全避免类定义,也需要有状态的对象,但在向对象编程(OOP)语中
>>>%year_cheese%=%[(2000,%29.87),%(2001,%30.12),%(2002,%30.6),%(2003,
30.66),(2004,%31.33),%(2005,%32.62),%(2006,%32.73),%(2007,%33.5),
(2008,%32.84),%(2009,%33.02),%(2010,%32.92)]
>>>%max(year_cheese)
(2010,%32.92)
1
2
3
4
5
6