新手Clojure和leiningen问题:
鉴于下面我的项目中的代码片段,这可以从lein repl中获得:
==> (-main "something")
生成预期的“命令:某物…正在运行…完成”,但无法从命令行执行:
me pallet1]lein run "something"
生成"命令:某物...错误:未作为命令解析"
为什么我怎么修理它?
复制:
lein new eg
然后编辑生成的项目文件,添加:main eg.core
以定义主功能,并编辑生成的src/eg/core。clj文件,并将其粘贴到:
core.clj
(ns eg.core)
(defn something [] (println "Something!"))
(defn run-command-if-any [^String commandname]
(printf "Command: %s ..." commandname)
(if-let [cmd (ns-resolve *ns* (symbol commandname))]
(
(println "running ...") (cmd) (println "done.")
)
(println "error: not resolved as a command.")
))
(defn -main [ commandname ] (run-command-if-any commandname))
然后
lein repl
eg.core=> (-main "something")
作品(即打印的东西!),但lein运行的东西不(即打印的错误:未解决的消息)
lein exec插件对于在项目上下文中编写这样的东西非常有用。我已经广泛使用这写Jenkins的工作在Clojure和其他脚本的情况下
lein exec -pe '(something ...) (something-else) (save-results)'
问题是,从lein运行时,默认名称空间是“用户”名称空间:
(defn -main [ commandname ] (println *ns*))
打印#
传递完全限定的函数名:you-namespace/某物
而不是某物
。
- 使用
you-namespace
而不是*ns*
:(ns-解析'you-namespace(符号命令名))
- 在
-main
中将命名空间更改为you-namespace
。
方法3的示例:
(defn -main [ commandname ]
(in-ns 'your-namespace)
(run-command-if-any commandname))
此外,如果要逐个调用多个函数,应使用:
(do (println "Hello")
(println "World"))
不仅仅是像
((println“hello”)(println“World”)
我是thymeleaf的新手,不明白和之间的区别。何时使用*以及何时使用$?
Learn Something Every Day My goal is to consistently learn new concepts and ideas that help me grow and enhance my understanding of software. I hope to develop this repository by adding summary notes
问题内容: 我在此站点上看到了一些东西: 用JavaScript和PHP处理HTML表单元素数组 http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=343 它说过将数组放在name属性中,以及如何获取输入集合的值。例如 但据我所知,HTML input元素已通过数组就绪。例如,在客户端()或服务器端(在PHP或ASP.NET中)
请考虑代码: 和有什么区别?
我希望得到您对以下问题和解决方案(潜在)的反馈。 假设有一个可运行的任务,该任务对 CPU 使用情况进行采样并将其写入 CSV 文件。此任务不返回任何结果。这需要安排永久定期执行。如果用户取消任务,我们关闭文件编写器,用户可以下载CSV文件。 当您将这样的任务提交给ListeningScheduledExecutorService(如下所示)时,您将获得一个ListenableScheduledF
问题内容: 之间有什么区别: 和 我不相信,但是我想知道。 问题答案: 从语义上讲,它们是相同的。但是,我建议在声明数组时使用后一种语法()。以前的语法主要用于与C语法兼容。 因为总体上来说,它是Java中对象的类型,所以它更加一致,而且很清楚不要将其拆分。