我需要一些关于如何在IntelliJ中定义工作域函数的非常基本的建议:
(ns clojure.examples.hello
(:gen-class))
(defn -main
[greetee]
(println (str "Hello " greetee "!")))
当我创建项目时,将前面的代码粘贴到源文件中,并设置运行配置(选择脚本路径,模块,工作开发和“在REPL中运行脚本”),我得到:java.lang.Exception: Unable to resolve symbol: -main in this context (NO_SOURCE_FILE:1)"
每当我运行(-main "Some Greeting")
时。任何建议都会有所帮助。
答案 0 :(得分:5)
我认为La Clojure的REPL从user
命名空间开始(大多数 - 全部? - Clojure REPL这样做);您必须使用(in-ns 'clojure.examples.hello)
或(use 'clojure.examples.hello)
切换到项目的命名空间,以调用其中定义的函数。更好的是,(require '[clojure.examples.hello :as hello])
并将其称为(hello/-main "IDEA")
。