Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure:从字符串重新加载_Clojure - Fatal编程技术网

Clojure:从字符串重新加载

Clojure:从字符串重新加载,clojure,Clojure,编辑:我想要的基本上是加载字符串吗 问题: 在Clojure中,如果我这样做: (require :reload 'foo.bar) 然后Clojure查找src/foo/bar.clj,并重新加载它 现在,我想做这样的事情: (reload-from-string 'foo.bar STR) 其语义是:重新加载名称空间“foo.bar”,但不是编译src/foo/bar.clj,而是编译STR 如何定义从字符串重新加载 上下文 我需要在运行Clojure应用程序的服务器上热重新加载代码。我

编辑:我想要的基本上是加载字符串吗

问题: 在Clojure中,如果我这样做:

(require :reload 'foo.bar)
然后Clojure查找src/foo/bar.clj,并重新加载它

现在,我想做这样的事情:

(reload-from-string 'foo.bar STR)
其语义是:重新加载名称空间“foo.bar”,但不是编译src/foo/bar.clj,而是编译STR

如何定义从字符串重新加载

上下文 我需要在运行Clojure应用程序的服务器上热重新加载代码。我不想为了重新加载而不断地将文件来回移动到服务器(通过scp、sftp或fuse/sshfs)。因此,我更愿意传递一个字符串


谢谢

您可以使用
读取字符串
,然后使用
eval
。但要记住风险。将它们分开的一个优点是,您可以在评估结果列表之前将结果列表中的内容列为白名单


您可能还想将
*read eval*
绑定为false。

如果服务器是防火墙,swank会话在本地端口上,并且我在+do端口转发中使用ssh,那么风险在哪里?除非您有内部入侵者,否则听起来不会太大。但问题并不是很具体。你是对的,有些假设我没有写下来。你的回答对上述问题是正确的。