【发布时间】:2021-12-08 16:21:50
【问题描述】:
我正在尝试学习函数式编程,并且我正在使用 Python 进行学习。我正在尝试做的一个练习是创建一个函数,如果数字是偶数则返回 true。
def evenOrOdd(x):
return lambda x: x%2 == 0
print(evenOrOdd(1))
print(evenOrOdd(2))
print(evenOrOdd(3))
print(evenOrOdd(4))
<function evenOrOdd.<locals>.<lambda> at 0x7f7a9a145670>
<function evenOrOdd.<locals>.<lambda> at 0x7f7a9a145670>
<function evenOrOdd.<locals>.<lambda> at 0x7f7a9a145670>
<function evenOrOdd.<locals>.<lambda> at 0x7f7a9a145670>
这是我目前拥有的,但正如你所见,它没有返回布尔值。
【问题讨论】:
-
return x % 2 == 0,如果你真的想使用 lambda,你必须调用它:return (lambda x: x % 2 == 0)(x)但没有必要使用它 -
只是为了扩展@Matiiss 所写的内容。您创建了一个函数
evenOrOdd,它返回一个函数,告诉您初始值是偶数还是奇数。 -
我不确定 lambda 应该实现什么。函数式编程确实使用返回其他函数的函数,但这里没有明显的指向这种模式。
标签: python lambda functional-programming lambda-calculus