gpt4 book ai didi

shell - 从命令行启动 Lisp 程序时如何指定包名?

转载 作者:行者123 更新时间:2023-12-01 09:24:11 26 4
gpt4 key购买 nike

我正在从一个 shell 脚本调用一个 Lisp 函数(和其他一些东西)。为简洁起见,以下是脚本的相关部分:

./gcl -load /tmp/calendrica-3.0.cl -batch -eval '(format T "~a" (CC3::sunset (CC3::fixed-from-gregorian (CC3::gregorian-date 1996 CC3::february 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)) jerusalem))'

更容易阅读和输入,但不幸的是它不起作用。我尝试了各种方法来包含 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 february 25)) jerusalem))'

最佳答案

也许你可以使用多个 eval,这是我对 sbcl 所做的。

#!/bin/sh
sbcl --noinform \
--eval '(load "boot.lisp")' \
--eval '(in-package #:my-pkg)' \
--eval "(do-something-useful)" # do-something-useful is in my-pkg

关于shell - 从命令行启动 Lisp 程序时如何指定包名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28341391/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com