我正在尝试从ClojureScript编写一个宏来处理试剂应用程序的文件I/O。我得到这个错误:
IllegalArgumentException: No implementation of method: :as-file of protocol: #'clojure.java.io/Coercions found for class: clojure.lang.Symbol
当我试图做到以下几点:
(def file-string "/Users/luciano/Dropbox/projects/test/resources/blog/test.md")
(get-file file-string)
但我可以做得很好:
(get-file "/Users/luciano/Dropbox/projects/test/resources/blog/test.md")
这是宏:
(defmacro get-file [fname]
(slurp (io/file fname)))
我做错了什么?
您不应该为此使用宏。
宏最好被视为嵌入源代码中的编译器扩展。
您只需要一个常规函数,如:
(defn get-file
[fname]
(slurp (io/file fname)))
至于从试剂应用程序执行I/O,我不确定您的目标是什么。
这意味着您试图用一个在运行时没有值的符号调用宏。
(def my-file "foo.txt")
(def file-str (get-file my-file))
将工作而
(defn foo [s]
(get-file s))
(foo "foo.txt")
不会。
获取java。lang.IllegalArgumentException:没有实现方法::作为协议的文件:#'clojure。JAVA为类clojure找到io/强制。当我在MAC OS X上从终端运行lein test或lein repl时,lang.PersistentVector。尽管lein repl在eclipse中运行良好(使用逆时针插件) 我的项目文件是:
我正在尝试使用leiningen创建一个多目标项目,因此我让它生成多个不同的jar文件,这是我创建的项目文件: 它不断返回错误,我不知道它到底出了什么问题
我正在使用clojure-1.5。1,compojure-1.1。5,克罗斯塔什-1.3。1. 模板文件位于资源/公共/模板文件夹下。 代码: 对Clostache渲染资源的调用引发以下异常:
我对Clojure很陌生,玩得很开心。有一件事我遇到了一些麻烦,那就是如何阅读错误,我个人认为它们不是很具有描述性,但这可能是由于我的“新手”。 例如,我现在遇到的问题是当我尝试启动我的环形服务器时(如果需要,我可以提供更多详细信息): 这对我来说太模糊了,我怎么知道我做错了什么?我不记得和任何“制造阅读器”、协议或IOFactory打过交道。
Clojure 语法 Lisp方言有一个非常简洁的语法 — 有些人觉得很美的语法。数据和代码的表达形式是一样的,一个列表的列表很自然地在内存里面表达成一个tree。(a b c)表示一个对函数a的调用,而参数是b和c。如果要表示数据,你需要使用 '(a b c) o或者 (quote (a b c)) 。通常情况下就是这样了,除了一些特殊情况 — 到底有多少特殊情况取决于你所使用的方言。 我们把这
本文向大家介绍go语言实现的memcache协议服务的方法,包括了go语言实现的memcache协议服务的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了go语言实现的memcache协议服务的方法。分享给大家供大家参考。具体如下: 完整实例代码点击此处本站下载。 1. Go语言代码如下: 2. Go语言代码: 3. Go语言代码如下: 希望本文所述对大家的Go语言程序设计有所帮助。