gpt4 book ai didi

clojure - 为什么 LET 不适用于 VECTOR?

转载 作者:行者123 更新时间:2023-12-01 07:27:46 25 4
gpt4 key购买 nike

代替

(let [x 1] (my-expression))

我正在尝试使用:
(let (vector x 1) (my-expression))

不要问为什么,我只是更喜欢普通的括号。但是 Clojure 说:
let requires a vector for its binding in ...

怎么了?

最佳答案

let special form binding form需要是一个向量文字,而不仅仅是一个将评估为向量的表达式。

为什么?粗略地说,必须先编译表达式,然后才能对其求值。在编译时 (vector x 1)不会被评估为 vector ,它只是一个列表。实际上,如果要对其进行评估,vector 的论点将被评估,意思是 x将不得不解决。但是,你不想要 x要解决,你要它绑定(bind)。

关于clojure - 为什么 LET 不适用于 VECTOR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967743/

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