可爱的 Python: Python 中的函数编程
2007-03-29 12:05:55 来源:WEB开发网核心提示: 清单 6. Python 中的函数 'echo' 循环# imperative version of "echo()"defecho_IMP():while 1:x = raw_input("IMP -- ")if x =='
清单 6. Python 中的函数 'echo' 循环
# imperative version of "echo()"
def
echo_IMP
():
while
1:
x = raw_input(
"IMP -- ")
if
x ==
'quit':
break
else
print
x
echo_IMP()
# utility function for "identity with side-effect"
def
monadic_print
(x):
print
x
return
x
# FP version of "echo()"
echo_FP =
lambda
: monadic_print(raw_input(
"FP -- "))==
'quit'
or
echo_FP()
echo_FP()
我们所完成的是设法将涉及 I/O、循环和条件语句的小程序表示成一个带有递归的纯表达式(实际上,如果需要,可以表示成能传递到任何其它地方的函数对象)。我们 的确 仍然利用了实用程序函数 monadic_print() ,但这个函数是完全一般性的,可以在我们以后创建的每个函数程序表达式中重用(它是一次性成本)。请注意,任何包含 monadic_print(x) 的表达式所 求值 的结果都是相同的,就象它只包含 x 一样。FP(特别是 Haskell)对于“不执行任何操作,在进程中有副作用”的函数具有“单一体”意思。
更多精彩
赞助商链接