gpt4 book ai didi

lambda - Scheme/Racket 中 let 的 lambda 定义是什么?

转载 作者:行者123 更新时间:2023-12-05 00:08:25 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Confused by the difference between let and let* in Scheme

(2 个回答)


6年前关闭。




今天,我试图了解在 Scheme/Racket 中的 lambda 演算上下文中 let 是如何工作的,但我无法弄清楚如何将 let 的等价物编写为 lambda 函数。

我认为它的一般形式应该是这样的:

((lambda (p1 p2...) body) v1 v2...)

但这绝对不是一个完整的函数定义。

对此有任何正确/完整定义的想法吗?

先感谢您!

最佳答案

你的榜样

((lambda (p1 p2 ...) body) v1 v2 ...)

正是
(let ([p1 v1] [p2 v2] ...) body)

方法。

你可以把你的例子变成这样的宏:
#lang racket

(define-syntax my-let
(syntax-rules ()
[(_my-let ([p1 v1] [p2 v2] ...) body)
((lambda (p1 p2 ...) body) v1 v2 ...)]))

(my-let ([x 1]
[y 2])
(+ x y))

程序的结果是 3。

关于lambda - Scheme/Racket 中 let 的 lambda 定义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30483765/

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