如何在进入REPL后自动使用“test.clj”中的函数?

3
在Haskell中,我可以通过自定义~/.ghci来在进入交互环境时自动使用“test.hs”中定义的函数。
>cat ~/.ghci
:def hoogle \str -> return $ ":! hoogle --count=15 \"" ++ str ++ "\""
:cd /media/E/www/qachina/db/doc/test
:load test

现在我将"test.hs"转换为"test.clj",并使用以下脚本进入其REPL。
%cat ~/bin/myclj 
#!/bin/sh
breakchars="(){}[],^%$#@\"\";:''|\\"
CLOJURE_DIR=/usr/share/clojure
CLOJURE_JAR="$CLOJURE_DIR"/clojure.jar
CONTRIB_JAR="$CLOJURE_DIR"/clojure-contrib.jar
if [ $# -eq 0 ]; then 
     exec rlwrap --remember -c -b "$breakchars" \
       -f "$HOME"/.clj_completions \
     java -cp "$CLOJURE_JAR:$CONTRIB_JAR" clojure.main
else
     exec java -cp "$CLOJURE_JAR:$CONTRIB_JAR" clojure.main $1 -- "$@"
fi

真诚地!


1
那么实际问题是什么? - Mikita Belahlazau
问题是“我如何使用test.clj文件中的函数”? - z_axis
2个回答

0

你可以直接使用Leiningen。

 lein new foo

将您的代码粘贴到./foo/src/foo/core.clj中,并在./foo中运行'lein repl'。
这样,您就可以在REPL中使用在core.clj中定义的函数。

0

如果您需要进行评估和REPL,可以使用以下命令:

java -cp .....  clojure.main -i script/run.clj -r

请查看clojure.main文档函数。命令行选项的顺序很重要!


如果您想使用命令行编辑功能,可以将JLine库添加到CLASSPATH中,并在 clojure.main 之前放置 jline.ConsoleRunner。请参见示例 https://github.com/liebke/incanter/blob/master/script/repl (尽管JLine中存在一些非Latin1字符的问题)。 - Alex Ott

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接