我正在从一个 shell 脚本调用一个 Lisp 函数(以及其他一些东西)。为简洁起见,以下是脚本的相关部分:
./gcl -load /tmp/calendrica-3.0.cl -batch -eval '(格式 T "~a" (CC3::sunset (CC3::fixed-from-gregorian (CC3::gregorian-date 1996 CC3:: 2 月 25 日)) CC3::jerusalem))' 728714.7349874675
上面的代码工作正常,但我必须为每个使用的符号附加包名 CC3;这使得代码笨拙且难以键入。
我试图像这样简化它,使用use-package
:
./gcl -load /tmp/calendrica-3.0.cl -batch -eval '(format T "~a" (use-package "CC3") (sunset (fixed-from-gregorian (gregorian-date 1996 february 25))耶路撒冷))'
更容易阅读和输入,但不幸的是它不起作用。我已经尝试了各种方法来包含该use-package
指令,但到目前为止还没有成功。
通过 GNU Common Lisp (gcl) 的加载指令启动 Lisp 程序时甚至可以包含use-package
指令吗?
更新: 解决方案是按照接受的答案的建议使用多个评估。
./gcl -load /tmp/calendrica-3.0.cl -batch -eval '(use-package "CC3")' -eval '(format T "~a" (sunset (fixed-from-gregorian (gregorian-date 1996 2 月 25 日))耶路撒冷))”