由 mfikes 发布的评论
可以考虑的替代方案:模仿 ClojureScript 中的现有功能,它有一个 * }。
`
cljs.user=> (doc main-cli-fn)
cljs.core/main-cli-fn
当编译用于命令行目标时,将使用命令行
main-cli-fn 设置的任何函数作为参数调用
argv
`
作为一个使用示例,使用 {{foo.cljs}}
`
(defn greet [name]
(println (str "Hello " name "!")))
(set! main-cli-fn greet)
`
然后
$ planck foo.cljs Friend Hello Friend!
这种情况在与其他{{-m}}或{{-f}}方法相比较时具有优势的一个地方是,如果你创建了一个shebang脚本并希望传输命令行参数,可以简单地用以下方式启动该脚本:
`
#!/usr/bin/env clojure
`
然后让 } 机制保证 } 被路由到该函数,而无需在shebang行中放置{{-f some-qualified/function}},在Linux上不允许在shebang行中指定解释器参数。