gpt4 book ai didi

python - 每日编码问题 : f parameter/function

转载 作者:行者123 更新时间:2023-11-28 17:58:05 31 4
gpt4 key购买 nike

所以我正在处理日常编码问题,而今天遇到的问题让我很困惑。

cons(a, b) constructs a pair, and car(pair) and cdr(pair) returns the first and last element of that pair. For example, car(cons(3, 4)) returns 3, and cdr(cons(3, 4)) returns 4.

Given this implementation of cons:

def cons(a, b):
def pair(f):
return f(a, b)
return pair

Implement car and cdr.

我不明白“f”代表什么。我试着打印我从那个函数得到的东西:

x = cons(3, 4)
<function cons.<locals>.pair at 0x2adc0ec45ae8>

但我还是不明白这是什么。有什么想法吗?

最佳答案

让我们检查一下缺点:

def cons(a, b):
def pair(f):
return f(a, b)
return pair

因此调用 cons(3, 4) 会动态创建一个函数,就像您这样静态定义它一样:

def pair_3_4(f)
return f(3, 4)

类似地:

pair1 = cons(2, 6)
pair2 = cons(5, 8)
pair3 = cons("a", "b")

相当于:

def pair1(f)
return f(2, 6)
def pair2(f)
return f(5, 8)
def pair3(f)
return f("a", "b")

现在,让我们检查一下:

def pair(f):
return f(a, b)

据此,您可以猜测 f 一定是一个可调用对象,并且它有两个参数。最简单的可调用对象是一个函数,所以我们假设 f 是一个函数。

你还可以看到 pair 简单地调用 f 与任何 ab 被绑定(bind)到它缺点

这是一个例子,我使用 print 作为 f :

>>> pair_3_4 = cons(3, 4)
>>> pair_3_4(print)
3 4
>>> cons(3, 4)(print)
3 4
>>> print(3, 4)
3 4

关于python - 每日编码问题 : f parameter/function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57201568/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com