可爱的 Python: Python 中的函数编程
2007-03-29 12:05:55 来源:WEB开发网核心提示:尽管用户通常将 Python 看作是一个过程性和面向对象语言,但它实际上包含了实现完整函数编程所需的每样事物,可爱的 Python: Python 中的函数编程,本文讨论了函数编程的常规概念,并说明了在 Python 中实现函数技术的方法,即函数加上自变量),在很纯粹的情况下,我们最好从最难的问题开始:“到
尽管用户通常将 Python 看作是一个过程性和面向对象语言,但它实际上包含了实现完整函数编程所需的每样事物。本文讨论了函数编程的常规概念,并说明了在 Python 中实现函数技术的方法。
我们最好从最难的问题开始:“到底什么是函数编程 (FP)?”一个答案可能会说 FP 就是您在使用例如 Lisp、Scheme、Haskell、ML、OCAML、Clean、Mercury、Erlang(或其它一些)语言进行编程时所做的。这是一个稳妥的答案,但不能很确切地阐明问题。不幸的是,即使是函数程序员他们自己也很难对 FP 究竟是什么有个一致的认识。“盲人摸象”的故事用来形容这一情况似乎很合适。还可以放心地将 FP 与“命令编程”(使用例如 C、Pascal、C++、Java、Perl、Awk、TCL 以及其它大多数语言所执行的操作,至少是在很大程度上)进行对比。
从个人角度来说,我会将函数编程粗略地描绘为至少具有以下几个特征。称得上函数性的语言使这些事情变得简单,而使其它事情变得困难或不可能:
函数是第一类(对象)。即,可以对“数据”进行的每样操作都可以使用函数本身做到(例如将一个函数传递给另一个函数)。
将递归用作主要的控制结构。在某些语言中,不存在其它“循环”构造。
重点集中在列表 LISt 处理(例如,名称 Lisp )。列表经常和子列表的递归一起使用以替代循环。
“纯”函数语言能够避免副作用。这不包括在命令语言中最普遍的模式,即指定第一个,然后将另一个值指定给同一个变量来跟踪程序状态。
FP 不鼓励或根本不允许出现 语句,取而代之是使用表达式求值(换句话说,即函数加上自变量)。在很纯粹的情况下,一个程序就是一个表达式(加上支持的定义)。
更多精彩
赞助商链接