gpt4 book ai didi

lisp - 将参数从文本文件传递给 Lisp?

转载 作者:太空宇宙 更新时间:2023-11-03 18:47:31 25 4
gpt4 key购买 nike

大家。我最近开始玩弄(通用)Lisp,现在我正试图弄清楚如何将它与某些文本文件的内容一起使用。我有 test.lisp:

(defun double (x)
(* 2 x))

(defun main (arg)
(print (double arg))
(quit))

我用

编译了它

clisp -c -q test.lisp

并使用 Linux 终端运行它

clisp -q -q -x '(progn (load "test") (main 10) (quit))'

这给了我输出“20”。这样可以正常工作,但是有没有办法可以从某个地方的文本文件(testing.txt)中传递 10 ?或者甚至可能来自某些用 C 编写的程序的输出,例如?我知道只传递一个参数是微不足道的,但是一旦我至少知道如何传递一个参数,我就会得到多个参数。我用来运行它的命令实际上看起来就像我将三个命令/函数扔到 REPL 中,所以也许还有另一种方法来运行我丢失的文件?

也许这是一个毫无意义的问题,但如果有办法做这样的事情,我将不胜感激。

提前致谢。

最佳答案

使用 with-open-file 打开一个文件(它打开一个文件并在执行离开其范围时自动关闭它)。

如果你有这样一个文本文件:

13
19

您可以像这样加载和添加这些数字:

(with-open-file (in #p"foo" :direction :input)
(let ((numbers (loop :for line := (read-line in nil)
:while line
:collect (parse-integer line))))
(reduce #'+ numbers)))

关于lisp - 将参数从文本文件传递给 Lisp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23007141/

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