在IntelliJ中定义Clojure-main函数
我需要一些关于如何在IntelliJ中定义working-main函数的基本建议,大致如下:在IntelliJ中定义Clojure-main函数,clojure,main,intellij-idea,Clojure,Main,Intellij Idea,我需要一些关于如何在IntelliJ中定义working-main函数的基本建议,大致如下: (ns clojure.examples.hello (:gen-class)) (defn -main [greetee] (println (str "Hello " greetee "!"))) 当我创建项目时,将前面的代码粘贴到源文件中,并设置运行配置(选择脚本路径、模块、工作开发和“在REPL中运行脚本”),每当我运行(-main“Some Greeting”)时,我就会得
(ns clojure.examples.hello
(:gen-class))
(defn -main
[greetee]
(println (str "Hello " greetee "!")))
当我创建项目时,将前面的代码粘贴到源文件中,并设置运行配置(选择脚本路径、模块、工作开发和“在REPL中运行脚本”),每当我运行
(-main“Some Greeting”)时,我就会得到:java.lang.Exception:无法解析符号:-main在此上下文中(无源文件:1)”
。任何建议都会有帮助。我认为La Clojure的REPL从用户
名称空间开始(就像大多数——所有?--Clojure REPL一样);您必须使用(在ns'Clojure.examples.hello中)
或(使用'Clojure.examples.hello)切换到项目的名称空间
调用此处定义的函数。更好的是,(需要“[clojure.examples.hello:as hello])
并将它们称为(hello/-main“IDEA”)
webdestroya:感谢您使其真正可读!看起来这是一个名称空间问题,正在使用(在ns'clojure.examples.hello中)在REPL命令中,我进入了正确的名称空间。IntelliJ阻塞了其他命令。有没有办法让它更无缝?没有“更无缝”的了“是的。如果要在特定名称空间中使用代码,则需要位于该名称空间中或使用该名称空间。我通常使用名称空间,因此我更接近地模拟在另一个库中使用该库的情况。放下IJ和E一起去。很高兴听到你找到了令人满意的解决方案。我自己使用Emacs进行Clojure编程,不知道如何驯服La Clojure。请注意,如果项目的目录布局与名称空间名称的结构相匹配,并且IDE正确设置了类路径,则use
和require
表单都应该可以正常工作。还有更无缝的方法。我不知道CCW或SLIME是如何做到这一点的,但是VimClojure提供了一个命令来在当前缓冲区的名称空间中打开repl。因此,在用户端不需要名称空间处理。