(第一个 ["a" "b" "c"])-> "c"
我期望的地方:(first ["a" "b" "c"]) -> "a"
我想我一定在这里误解了一些东西,任何帮助表示赞赏!
此致。
(defn binnd-to-name [name-string to-bind]
(bind-to-name name-string to-bind))
(defmacro bind-to-name [name-string stuff-to-bind]
`(def ~(symbol name-string) ~stuff-to-bind))
(defn bind-services [list-of-services]
(if (empty? list-of-services)
nil
(do
(binnd-to-name (first (first list-of-services)) (last (first list-of-services)))
(bind-services (rest list-of-services)))))
(bind-services [["*my-service*" se.foo.bar.service.ExampleService]])
ExampleService 是类路径上的一个 Java 类,我想将它绑定到符号my-service。这个想法是遍历名称-值对列表并将每个名称绑定到值。它没有按预期工作。
所以不知何故,在这段代码中,某些东西显然被评估为“def first last”。