Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在IntelliJ中定义Clojure-main函数_Clojure_Main_Intellij Idea - Fatal编程技术网

在IntelliJ中定义Clojure-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”)时,我就会得

我需要一些关于如何在IntelliJ中定义working-main函数的基本建议,大致如下:

(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。因此,在用户端不需要名称空间处理。