【问题标题】:Run Lisp functions on load在加载时运行 Lisp 函数
【发布时间】:2014-12-19 00:03:53
【问题描述】:

每当我使用以下代码(加载“program.lisp”)时,我都会收到错误消息:“错误:#input 流“program.lisp”的意外结束

(defun theProgram () 
    (reset)
    (print "Hello Kappa")
    (setentries)
    (startloop)
    (loop for x in mylist collect (splitremove))
    (loop for x in numlist collect (getgrades))
    (loop for x in namelist collect (getprint))
    (loop for x in printlist collect (andprint)))
(theProgram)

我知道最后一行是问题所在,如果不包含它会正常工作,但是我需要程序在加载时启动,我该如何实现?

编辑:我应该注意 setentries 调用(读取),startloop 也是如此。我正在使用带有 gcl 解释器的 GNU common lisp 2.6。

【问题讨论】:

  • 当您不告诉我们您使用的是什么 Lisp、调用了什么代码时,我们应该如何帮助您,...?
  • 删除该函数的调用后,代码中的所有内容都可以正常工作。我可以在加载文件后调用该函数,它会很好,所以我认为它不相关。我应该注意到 setentries 调用(读取),startloop 也是如此。 GNU 通用 lisp 2.6
  • 该错误意味着您在program.lisp 中有不平衡的括号。您发布的代码没有这个问题,所以一定有更多的问题导致了这个问题。
  • 所有这些loop 电话的意义何在?您正在收集东西,但没有将它们保存在任何地方。

标签: function load lisp


【解决方案1】:

实际的错误是函数中的(读取)部分没有声明流,因此它在脚本运行时从脚本读取输入,而不是从终端读取。

【讨论】:

    猜你喜欢
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多