Clojure中的java链接向量元素
我试图在Clojure中读取宏中的文件
我用这行代码启动宏:
(def result (rd [s (FileReader. (File. "myFile.txt"))] (.read s)))
其中“rd”是我的宏的名称
我的宏的原型如下所示:
(defmacro rd
([] nil)
([arg] arg)
([[variable val] expr]
)
)
问题是我可以“执行”文件读取器,但当我试图“执行”expr(.read s)时,它不工作,因为s未知
所以我想把向量的元素和已知的向量联系起来,所以我想用val来表示变量
我不确定我在做什么,所以如果你看到其他的方式,我会去做
提前谢谢各位
# 1 楼答案
如前所述,如果需要在运行时读取文件,则需要引入var。。大概是这样的:
然后您的宏调用将扩展为: