gpt4 book ai didi

java - Clojure 中的链接 vector 元素

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

我正在尝试在 Clojure 中读取宏中的文件。

我正在用该行启动我的宏:

(def result (rd [s (FileReader. (File. "myFile.txt"))] (.read s)))

其中“rd”是我的宏的名称。

我的宏的原型(prototype)是这样的:

(defmacro rd
([] nil)
([arg] arg)
([[variable val] expr]
)
)

问题是我可以“执行”FileReader,但是当我尝试“执行”expr (.read s) 时,它不起作用,因为 s 未知。

所以我试图将 vector 的元素链接到已知的 s ,所以我想要 val 指向的“变量”。

我不确定自己是否在做自己想做的事情,所以如果您看到其他方法,我可以做到。

提前谢谢大家。

最佳答案

如果你需要在运行时读取文件,正如你所说,你需要引入 var.. 像这样的东西:

(defmacro rd [[variable val] expr]
`(let [~variable ~val]
~expr))

然后你的宏调用将扩展为:

(let [s (FileReader. (File. "myFile.txt"))] (.read s))

关于java - Clojure 中的链接 vector 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41152695/

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