可爱的 Python: Python 中的函数编程
http://tech.ddvip.com 2007年03月29日 社区交流
本文详细介绍可爱的 Python: Python 中的函数编程
专栏继续 David 对 Python 中的函数编程 (FP) 的介绍。请阅读本文对解决编程问题的不同范例的介绍,在介绍过程中 David 将阐述几个中高级的 FP 概念。
在 第 1 部分,有关函数编程的前一个专栏中,我介绍了一些 FP 的基础概念。本专栏将进一步深入研究这一概念性相当强的领域。对于我们的研究,Bryn Keller 的 “Xoltar 工具包” 将提供有用的帮助。Keller 把很多 FP 的优势都集中在一个包括纯 Python 技术执行的小巧模块中。除了 functional 模块,Xoltar 工具包还包括 lazy 模块,该模块支持“只在需要时”赋值的结构。许多传统函数语言也具有缓式赋值,因此在这些组件中,Xoltar 工具包使您获得象 Haskell 这样的函数语言该有的大部分功能。
绑定
细心的读者可能记得我在 第 1 部分的函数技术中指出的限制。特别在 Python 中不能避免表示函数表达式的名称的重新绑定。在 FP 中,名称通常被理解为较长表达式的缩写,但这一说法暗示着“同一表达式总是求出相同的值”。如果标记的名称重新被绑定,这一暗示便不成立。例如,让我们定义一些在函数编程中要用到的快捷表达式,比如:
清单 1. 以下 Python FP 部分的重新绑定要造成故障
>>> car =
lambda
lst: lst[0]
>>> cdr =
lambda
lst: lst[1:]
>>> sum2 =
lambda
lst: car(lst)+car(cdr(lst))
>>> sum2(range(10))
1
>>> car =
lambda
lst: lst[2]
>>> sum2(range(10))
5
责编:豆豆技术应用
正在加载评论...