什么';什么是lisp等价于System.exit(0)?
假设我在多个mapcar函数中,并且我已经找到了成功的终止条件。我想停止其余代码的执行 在java中,我可以执行System.exit(0)什么';什么是lisp等价于System.exit(0)?,lisp,common-lisp,Lisp,Common Lisp,假设我在多个mapcar函数中,并且我已经找到了成功的终止条件。我想停止其余代码的执行 在java中,我可以执行System.exit(0) lisp有类似的功能吗?类似于System.exit()的功能在像lisp这样的面向REPL的环境中是没有意义的;它可能存在,但它不会使函数返回值 如果您的代码结构正确,则可以执行所需的操作。MAPCAR对于在数据上迭代并在发现成功终止条件时退出不有用 Common Lisp提供了MAPC,类似于MAPCAR,但不累加结果。另请参见功能映射 此外,Comm
lisp有类似的功能吗?类似于
System.exit()
的功能在像lisp这样的面向REPL的环境中是没有意义的;它可能存在,但它不会使函数返回值
如果您的代码结构正确,则可以执行所需的操作。
MAPCAR
对于在数据上迭代并在发现成功终止条件时退出不有用
Common Lisp提供了MAPC
,类似于MAPCAR
,但不累加结果。另请参见功能映射
此外,Common Lisp还提供了许多函数,如FIND
,FIND-IF
,FIND-IF-NOT
对于流控制,常见的Lisp有
返回
、返回
、捕获
和抛出
以及许多其他方法。在这种情况下,它可能不是合适的解决方案(使用Dougal的答案从嵌套循环/调用返回),但为了完整性,它是系统.exit(0)的字面等价物代码>将类似于
正如您所看到的,它在不同的实现中完全不同,因为它不是标准的一部分。这与我正在做的已经足够好了。我在一个函数中,函数中有一个双嵌套的mapcar,每个mapcar中都有一个lambda。通过提及封闭函数的名称,这就达到了目的。