首先,对令人困惑的标题感到抱歉,但这是我能想到的描述它的唯一方式。我最近收到的一份课程作业问了一个问题,即定义一个带有一个参数(x)的函数,该函数返回另一个带有一个参数(y)的函数,它本身将返回 x*y。我们被要求使用普通函数或我选择 lamdas 的 lambda 写出这个,这样写:
def create_multiplier (x):
return lambda y: y * x
input1 = int(raw_input("Please enter your initial number for our multiplier"))
multi = create_multiplier(input1)
input2 = int(raw_input("Please enter your second number for our multiplier"))
print input1, " times by ", input2, " = " ,multi(input2)
但是我现在很好奇他们如何期望我们只用函数来实现它,最初我想也许你会在第一个函数中将你的第一个数字传递给 x,然后将一个数字也传递给我们的第二个函数为 y,因为我们是在第一个函数中返回第二个函数,我们可以像嵌套变量一样使用 x。很快就被击落了
我理解如果你不愿意回复,因为这是课程作业,但这让我很好奇你是如何在不将我们的 x 预设为 lambda 的情况下实现它的,也许我只是在奇怪地看着它,而且它非常明显。谢谢您的回复