2012-04-01 127 views
-4

我有一些函数循环,每次迭代它读取输入,在“0”它调用函数“退出并保存”,在该函数中它保存了一些数据库,之后,我需要它退出程序?这是什么命令?如果我使用return-from ...它只是从函数返回,如果我使用return - error,如果我使用quit,它将从slime中断开。我在Common Lisp的新...所有的在通用lisp中退出完整程序的功能是什么?

+5

你有什么期望,当你在一个Lisp系统运行 调用'quit'发生粘液? – Svante 2012-04-01 20:58:36

+0

这可能有助于查看您想要做什么的示例。这大致听起来好像你在程序设计方面存在问题,在那里你很难“检测到最终”状态。这种“退出并保存”功能似乎不太可能奏效。 – BRFennPocock 2012-10-10 19:12:57

回答

0
(loop for i from 0 to 10 
    do (progn (format t "~&cycle ~d" i) 
      (when (> i 5) 
      (return nil)))) 
0

首先使用我无法验证煤泥断开(退出),在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"