我遇到以下面试问题,却不知道如何解决:
def cons(a, b):
def pair(f):
return f(a, b)
return pair
Run Code Online (Sandbox Code Playgroud)
给定一对,比如cons(6,8)我要求归还a和bseparetely,例如,在这种情况下分别为6,8。
举例来说,
def first(pair):
pass
#would return pair's `a` somehow
def second(pair):
pass
#would return pair's `b` somehow
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点?
你可以试试:
pair = cons(6, 8)
def first(pair):
return pair(lambda x, y: x)
def second(pair):
return pair(lambda x, y: y)
print(first(pair))
print(second(pair))
# ouput:
# 6
# 8
Run Code Online (Sandbox Code Playgroud)