我有一些循环函数,每次迭代它读取输入,在“0”它调用函数“退出并保存”,在该函数中它保存一些数据库,之后我需要它退出程序?这个命令是什么?如果我使用return-from ...它只是从函数返回,如果我使用return - error,如果我使用quit,它会与slime断开连接。我是常见的新手......
答案 0 :(得分:0)
(loop for i from 0 to 10
do (progn (format t "~&cycle ~d" i)
(when (> i 5)
(return nil))))
答案 1 :(得分:0)
首先,我无法验证slime是否断开使用(退出),至少在Ubuntu上没有使用sbcl。
CL-USER> (quit)
; Evaluation aborted on NIL.
CL-USER>
"still able to input here"
但如果你有一些奇怪的粘液版本,你可以利用条件系统:
(define-condition end-program-condition (simple-error) ())
(defun some-func ()
(error 'end-program-condition))
(defun main-function ()
(handler-case (some-func)
(end-program-condition () "THE END")))
CL-USER> (main-function)
"THE END"
CL-USER> "still can input here"
"still can input here"