clojure - Clojure 函数无法编译
问题描述
请原谅我完全缺乏知识,但是为什么这个函数不能编译?
(defn add-onehundred
[num]
(+ num 100))
(add-onehundred 5)
我在终端中收到此错误:
Exception in thread "main" Syntax error compiling at (/private/var/folders/ls/j5fjkkb96mx340pb_gm12t740000gn/T/form-init13922061526950471210.clj:1:126).
at clojure.lang.Compiler.load(Compiler.java:7647)
at clojure.lang.Compiler.loadFile(Compiler.java:7573)
at clojure.main$load_script.invokeStatic(main.clj:452)
at clojure.main$init_opt.invokeStatic(main.clj:454)
at clojure.main$init_opt.invoke(main.clj:454)
at clojure.main$initialize.invokeStatic(main.clj:485)
at clojure.main$null_opt.invokeStatic(main.clj:519)
at clojure.main$null_opt.invoke(main.clj:516)
at clojure.main$main.invokeStatic(main.clj:598)
at clojure.main$main.doInvoke(main.clj:561)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:705)
at clojure.main.main(main.java:37)
Caused by: java.lang.Exception: Cannot find anything to run for: clojure-noob.core
at user$eval140.invokeStatic(form-init13922061526950471210.clj:1)
at user$eval140.invoke(form-init13922061526950471210.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:7176)
at clojure.lang.Compiler.eval(Compiler.java:7166)
at clojure.lang.Compiler.load(Compiler.java:7635)
... 12 more
此处编辑器中的完整代码,当 main 被注释掉时,它不会编译,当它没有被注释掉时,add-onehundred
什么也不返回:
(ns clojure-noob.core
(:gen-class))
; (defn -main
; "I don't do a whole lot ... yet."
; [& args]
; (println "Hello, Mate"))
(defn add-onehundred
[num]
(+ num 100))
(add-onehundred 5)
解决方案
根据错误消息,您尝试使用以下命令运行它:
lein run
并且您的project.clj
文件中有以下内容:
:main clojure-noob.core
或者:
:main ^:skip-aot clojure-noob.core
这告诉 Leiningen 在命名空间中寻找一个-main
函数clojure-noob.core
以便“运行”你的新应用程序——但是你已经将它注释掉了,所以 Leiningen 找不到它,因此“找不到要运行的东西:clojure-noob.core ”。
取消注释-main
并让它调用add-onehundred
并打印结果。请注意,Clojure 中的函数必须在使用之前定义(或至少声明),因此您的代码最终将如下所示:
(ns clojure-noob.core
(:gen-class))
(defn add-onehundred
[num]
(+ num 100))
(defn -main
"I don't do a whole lot ... yet."
[& args]
(println (add-onehundred 5)))
lein run
应该运行您的应用程序并打印105
。
推荐阅读
- bot-framework-composer - 在 Bot Framework Composer 中更改 Power Virtual Agent 全局变量
- javascript - 验证后如何重定向页面
- javascript - 在本地存储的主页上显示数据
- php - php-cs-fixer - 规范化数组声明
- python - 按组将每一行减少前一行的百分比
- python-3.x - 在 pyspark sql 的连接中重复使用相同的数据框视图
- ios - 从 xib 与从单个 vc 故事板创建 UIViewController 实例
- sql - 是否可以在 presto sql 中执行顺序行计算?
- python - (lat,long)坐标的数据清洗
- java - 如何使用 ClassLoader 在 Java 中动态获取类的完全限定名