(define (my_cons x y) ......(1)
(lambda (m) (m x y)))
(define (my_car z) ......(2)
(z (lambda (p q) p)))
(define (my_cdr z)
(z (lambda (p q) q)))> (my_car (my_cons 1 2)) .......(3)
1
理解:
根据(2)将(3)my_car展开,我们得到
> ((my_cons 1 2) (lambda (p q) p)) ...... (4)
1(1)式定义了一个函数,这个函数的参数m是一个函数,返回x, y将作为m的参数,调用m运行。
(2)式定义了一个函数,这个函数调用函数z,并以一个lamdba函数作为z的参数
根据(1)将(4)my_cons展开,我们得到
> ((lambda (m) (m 1 2 )) (lambda (p q) p) ) ......(5)
1python的等价代码:
>>> def my_cons(x,y): return lambda m: m(x,y)
...
>>> def my_car(z): return z(lambda p,q: p)
...
>>> my_car(my_cons(1,2))

本文详细解析了在Python中使用自定义函数实现特定功能的过程,通过具体实例展示了如何利用lambda函数和定义函数来操作数据,最终通过Python代码实现了相同的功能。包括对函数的定义、参数传递、返回值的解析,以及与原始代码的对比,帮助读者深入理解Python函数的应用。
2532

被折叠的 条评论
为什么被折叠?



