我有兴趣知道&allow-other-keys
应该做什么。当我查阅所有我可以获得的文档时,我得到的参考很少,并且没有真正的定义。我能想到的最好方法是,它实际上是一个错误处理代码,您可以将其放在 &key 之后,以在调用宏时抑制对关键参数的检查。作为参考,这是我找到的地方:
(defmacro macro-name ((passed-variable
&rest open-args
&key &allow-other-keys)
&body body)
...)
Run Code Online (Sandbox Code Playgroud) 所以我遇到了麻烦,每次我评估 Clojure 函数,或者输入 REPL 并调用它时,我都没有得到结果,而是得到类似#function[clojure.core/map/fn--5880]
.
是什么导致了这个问题?我应该得到像这里的列表这样的结果,但我没有。如果我在 REPL 中定义所有内容并运行它,结果就会显示得很好。
我输入了什么并不重要,任何稍微先进的东西都会导致这种情况。
更多细节:
根据要求。
(def filename "tester.csv")
(defn parse
"Convert a CSV into rows of columns"
[string]
(map #(clojure.string/split % #"\n")))
Run Code Online (Sandbox Code Playgroud)
在 REPL 中:
(parse (slurp filename))
Run Code Online (Sandbox Code Playgroud) 所以,我在玩弄一些字符串时无意中发现了这一点。
(str 111) => "111"
(str 0111) => "73"
Run Code Online (Sandbox Code Playgroud)
这是什么?