如何在Lisp中编写函数。编译那个Lisp文件。然后运行那个Lisp程序

问题描述 投票:-1回答:1

在Common Lisp中编写,编译和测试一个函数,它获取一个列表并计算List中正整数的总和。必须编译然后执行包含该函数的.lisp文件。在编译该文件之后开始传递它的列表,其中在结果生成之后,因此测试函数的正确性。

我有这个功能。我可以通过将if直接放入Lisp命令行来运行它。简单地说,我只需要弄清楚如何编译文件,然后在终端上传递它以测试它。

(count-if#'(lambda(x)(> x 0))

我需要编译然后例如传递它ex ::(1 2 3 4 5),结果应该是:: 5这是因为它们是5个等于0的值

lisp
1个回答
1
投票

写一个文件:

$ echo "(defun test () (print :test))" > test.lisp

在同一个目录中,启动Common Lisp环境(例如CCL),你有一个REPL;编译文件:

? (compile-file "test.lisp")
#P"/tmp/test.lx64fsl"
NIL
NIL

请注意,如果您尝试运行test函数,则会出现错误,因为它在您的环境中未定义。

加载生成的目标文件;如果加载"test",则使用目标文件(如果可用);你可以直接在“.lisp”文件上调用load,但是不能保证文件被编译或解释。这是一个小细节,你可能不应该关心编译与否。

? (load "test")

现在,test可在您的环境中使用,您可以将其命名为:

? (test)

:TEST ;; what the function printed
:TEST ;; the returned value, automatically printed by the REPL

在不重新启动Lisp环境的情况下,您可以编辑该文件并重新加载它。这是一个简约的设置,但这应该足以启动。

© www.soinside.com 2019 - 2024. All rights reserved.