gpt4 book ai didi

syntax - Clojure 中的动态 let 列表解构

转载 作者:行者123 更新时间:2023-12-01 04:17:23 26 4
gpt4 key购买 nike

我有一个 let我想在其中动态解构列表的语句。以下是我的解决方案:

symList  ;; list of some Strings which will become the vector of Symbols to assign to
valList ;; list of some values, same length as symList

(let [(map read-string symList) valList]
...)
symList 的示例值将是 ("pt1" "pt2")valList 的示例值将是 (1 2)
但是,这会产生一个异常,即第一部分是“不受支持的绑定(bind)形式”。我怀疑我遗漏了一些关于语法引用的东西,或者这是不可能的。任何建议将不胜感激。

编辑:我只会在运行时知道这些值,因此这种方法。其次,我需要稍后能够传递词法范围,因此使用 let .

最佳答案

如果 symList 和 valList 在编译时具有正确的值,那么您可以编写一个宏来执行此操作。如果它们仅在运行时已知,您将不得不使用/编写一个函数来为您进行解构并将该解构的结果作为某种数据结构返回。

在第二种情况下,对于这样简单的事情,您可以使用 (zipmap symList valList)得到一张 map 。

关于syntax - Clojure 中的动态 let 列表解构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3230665/

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