gpt4 book ai didi

scheme - Scheme 中的解构记录

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:23 28 4
gpt4 key购买 nike

我正在学习 Scheme,具有 C/C++ 背景。我非常习惯于将相关的值组合到结构中,而且我发现 Scheme 的记录在这方面工作得很好。

如果发现自己经常这样做以避免函数体中的视觉噪音:

(define (f pt z)
(let*
((x (point-x pt))
(y (point-y pt))
(d (* x y z)))
...)

其中 pt 是一个 point 记录。有没有更短的方法来绑定(bind)/解构记录的字段?理想情况下,这将在 let 绑定(bind)中工作,但我想不出一种方法来编写可以完成此操作的宏,或者如果这可能的话。

最佳答案

在Racket中,我们可以使用match破坏记录的字段。这是否是一种更好的方法是值得商榷的...

(define (f pt z)
(match pt
[(point x y)
(let ([d (* x y z)])
...)]))

关于scheme - Scheme 中的解构记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53682857/

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