【发布时间】:2012-06-11 13:26:40
【问题描述】:
我正在尝试用 Python 编写 for 和 while 循环——函数式编程风格。
我认为for 构造很好,但while 不起作用,它会无限运行。
# for loop
lst = [1, 2, 3]
def fun(e):
return e
print map(fun, lst)
# while loop
i = 1
def whileloop():
global i
print i
i = i+1
while_FP = lambda: ((i < 5) and whileloop()) or while_FP()
while_FP()
【问题讨论】:
-
出于好奇,这个练习的意义何在?
-
谁需要指出这种事情?他在学习和实验,这太棒了。
-
我认为你需要
lambda i=i: ...。目前它只在你初始化 lambda 时检查是否i<5。 -
这种“函数式编程风格”如何?因为递归??您仍在循环中增加可变变量。 FP 方法将基于对序列结构的归纳......
-
@John,FP 风格不使用循环 :) 它使用 map/filter/reduce :) 并且从不使用全局变量!!!
标签: python functional-programming