Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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
Clojure的多行shebangs?_Clojure_Multiline_Main_Comments_Shebang - Fatal编程技术网

Clojure的多行shebangs?

Clojure的多行shebangs?,clojure,multiline,main,comments,shebang,Clojure,Multiline,Main,Comments,Shebang,目标:生成一个Clojure脚本,当作为/script.clj运行时,它将运行-main 我得到的最接近的是 #!/bin/bash #(comment exec clj -m `basename $0 .clj` ${1+"$@"} exit #) (defn -main [args] (println args)) 但是Clojure不允许在多行注释中使用非Lisp代码,并且Clojure没有公共Lisp的| ||#语法。语法晦涩难懂,但它可以工作。从 自可用以来,使用 #! /us

目标:生成一个Clojure脚本,当作为
/script.clj
运行时,它将运行
-main

我得到的最接近的是

#!/bin/bash
#(comment
exec clj -m `basename $0 .clj` ${1+"$@"}
exit
#)
(defn -main [args]
   (println args))

但是Clojure不允许在多行注释中使用非Lisp代码,并且Clojure没有公共Lisp的
| ||#语法。

语法晦涩难懂,但它可以工作。从

自可用以来,使用

#! /usr/bin/env clj

(println "Hello World!")

出于好奇,《代码》为什么不呢/usr/bin/clj-m
work?仍然看不出这与你最近的问题有什么不同,你最近的问题本身就是一个重复的问题。布莱恩非常彻底的回答有什么不适合你的吗?首先,布莱恩的回答根本不是回答。仅仅因为某些东西不是惯用语并不意味着它应该避免。第二,Brian没有提到多行Shebang。事实上,如果某些东西不是惯用的,有两种可能性。第一种可能性是,你是一个不知名的天才,发现了一些深刻的新的和重要的东西,这些东西将改变人们对语言编程的看法。第二,你错过了一些关键的概念,做了一些适得其反或更糟的事情。我将让您猜猜这两个选项中哪一个更有可能。Shebang不是新的,但它们对于编写具有命令行界面的程序非常有用。我很惊讶Clojure的作者没有更努力地使Clojure脚本更好地适应。Clojure社区是反POSIX的。我该怎么办?“不要;使用clj。”如何手动编译?“不要,用莱宁根。”
#! /usr/bin/env clj

(println "Hello World!")