只是一个简单的问题,而在寻找的Clojure ....Clojure的字符串返回值:
鉴于以下REPL会话:
Clojure 1.2.0
user=> "bar"
"bar"
user=> (print "bar")
barnil
user=> (defn foo [] ("bar"))
#'user/foo
user=> (foo)
java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.IFn (NO_SOURCE_FILE:0)
user=> (print foo)
#<user$foo [email protected]>nil
user=> (print (foo))
java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.IFn(NO_SOURCE_FILE:0)
为什么不是字符串“bar”通过打印功能显示?看起来读者试图将foo的返回值(它似乎是一个String)作为一个函数来解析? foo应该如何定义打印会将字符串写入命令行?
我有问题与根定义* CWD *我的方法项目。调用'(str cwd“src/foo.txt”)'错误* cwd *作为第一类函数对象,返回'“[email protected]/foo.txt”'。将其更改为'(str(cwd)“src/foo.txt”)'按预期工作。我现在明白,在命令式语言(Python)中,这是语句'len'和操作'len()'之间的区别。 – Droogans 2013-02-10 18:23:03