【发布时间】:2012-03-05 09:55:11
【问题描述】:
答案很好,但我意识到这并不是我所需要的。我简化了 stackoverflow 的示例,但我不只是写出数据,我正在尝试写出函数定义和其他包含包含列表的结构的东西。所以这里是一个简单的例子(从上一个问题中选择)。
我想生成一个包含函数的文件:
(defn aaa []
(fff :update {:bbb "bbb" :xxx [1 2 3] :yyy (3 5 7)}))
:update 之后的所有内容都是我在编写文件时可以访问的结构,因此我在其上调用 str 并以该状态出现。这很好,但是当我在这个生成的函数上加载文件时,列表会尝试将 3 作为函数调用(因为它是列表中的第一个元素)。
所以我想要一个包含我的函数定义的文件,然后我可以调用 load-file 并调用其中定义的函数。我怎样才能写出这个函数和相关的数据,这样我就可以重新加载它,而不用 clojure 思考过去的列表现在是函数调用吗?
【问题讨论】:
-
那么我是否必须遍历表单列表并将所有持久列表替换为引用的持久列表?如果是这样,我该怎么做?
-
你能不能只引用地图,还是也需要评估?
(defn aaa [] (fff :update '{:bbb "bbb" :xxx [1 2 3] :yyy (3 5 7)}))?如果这不起作用,您需要引用所有seqs(如果是(seq? x))。
标签: function file-io clojure eval