Differences between revisions 3 and 7 (spanning 4 versions)
Revision 3 as of 2004-09-22 21:11:41
Size: 498
Editor: ZoomQuiet
Comment: 先并人 ["FLOSS"] -- Py Tips 了是也乎!
Revision 7 as of 2005-08-08 17:19:06
Size: 2201
Editor: hoxide
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:

清剿太监贴~~ , 把没完成的东西完成之
Line 8: Line 10:
= 函数编程的概念 =
= 前言 =
 本文的写作计划源于2003年 月GreyRoar 的提议, 可惜真正动手却推到了现在, 在一年多的时间里, python的函数编程也发生了一些改变,
 python3000计划和最近的已经出现的"匿名块"等都使得python在这个方面的发展充满着不确定因素, 本文只讨论目前已知的能用的功能,
 不保证满足将来可能发生的变化.
 

 另外在一切开始前, 记住Python和数学里一样记号只是记号.

= 函数式编程的概念 =
Line 10: Line 21:
 函数编程源自 Lisp 等高阶语言, 他们以λ演算为基础. 所谓λ演算其实指基于算子λ的一个演算体系.

 他的特殊性在于, 存在一个算子 λ (λ只是记号, 没有更多含义), 他的作用是将运算式子变成函数 .

例如:
λx: x+1 就将 x+1这个运算式子, 变成了关于x的一个函数, 他的值是x+1.

光有λ算子构成不了完整的λ运算体系, 还需要一些辅助算子, 但是λ演算体系的基础就是这个算子.
要完全了解这个体系则需要一环扣一环的定义和定理,
太复杂这里不再详述(书丢学校了, 回校有时间补齐 :P ).

Line 11: Line 34:

== lambda ==

 和数学中的 λ 一样, python的函数编程体系中有一个 lambda 语句, 用来生成函数, 一般这样的函数称为匿名函数.

例如:
{{{
#!python
lambda x: x+1
}}}
就生成了一个函数 λ(x) = x+1.

具有可以在python的解释器中试试:

{{{
#!python
>>> lambda x: x+1 # 生成一个匿名函数 λ(x) = x+1
<function <lambda> at 0x00C99770>
>>> f = lambda x: x+1 # 将这个函数绑定名字 'f'
>>> f(1) # 调用 'f'
2
}}}


Line 12: Line 60:
Line 19: Line 68:
 * ["FP编程的一点资料"] 有了系统的转载, 先并人 ["FLOSS"] -- Py Tips 了是也乎! -- Zoomq  * ["FP编程的一点资料"] 有了系统的转载, 先并人(入) ["FLOSS"] -- Py Tips 了是也乎! -- Zoomq

函数编程, 任何人可以以任何方式随意转载.

清剿太监贴~~ , 把没完成的东西完成之

-- hoxide [DateTime(2004-09-08T23:06:48Z)] TableOfContents

前言

  • 本文的写作计划源于2003年 月GreyRoar 的提议, 可惜真正动手却推到了现在, 在一年多的时间里, python的函数编程也发生了一些改变, python3000计划和最近的已经出现的"匿名块"等都使得python在这个方面的发展充满着不确定因素, 本文只讨论目前已知的能用的功能, 不保证满足将来可能发生的变化. 另外在一切开始前, 记住Python和数学里一样记号只是记号.

函数式编程的概念

简述

  • 函数编程源自 Lisp 等高阶语言, 他们以λ演算为基础. 所谓λ演算其实指基于算子λ的一个演算体系. 他的特殊性在于, 存在一个算子 λ (λ只是记号, 没有更多含义), 他的作用是将运算式子变成函数 .

例如: λx: x+1 就将 x+1这个运算式子, 变成了关于x的一个函数, 他的值是x+1.

光有λ算子构成不了完整的λ运算体系, 还需要一些辅助算子, 但是λ演算体系的基础就是这个算子. 要完全了解这个体系则需要一环扣一环的定义和定理, 太复杂这里不再详述(书丢学校了, 回校有时间补齐 :P ).

python中的函数编程

lambda

  • 和数学中的 λ 一样, python的函数编程体系中有一个 lambda 语句, 用来生成函数, 一般这样的函数称为匿名函数.

例如:

   1 lambda x: x+1

就生成了一个函数 λ(x) = x+1.

具有可以在python的解释器中试试:

   1 >>> lambda x: x+1 # 生成一个匿名函数 λ(x) = x+1
   2 <function <lambda> at 0x00C99770>
   3 >>> f = lambda x: x+1 # 将这个函数绑定名字 'f'
   4 >>> f(1) # 调用 'f'
   5 2

基本方法综述

应用实例

函数编程的缺陷

例子

交流

  • 已经开始了?强烈支持呀,呵呵——GreyRoar

  • ["FP编程的一点资料"] 有了系统的转载, 先并人(入) ["FLOSS"] -- Py Tips 了是也乎! -- Zoomq

fp4python (last edited 2009-12-25 07:15:25 by localhost)