请解释这个错误
我在lisps中使用了这个错误处理程序,在这里我修改系统变量已经有一段时间了。我不记得在哪里找到下面的代码。(setq *error*
(lambda (msg)
(setvar "CMDECHO" CRcecho)
(setvar "CLAYER" CRlayr)
(setvar "ATTREQ" CRattreq)
(princ msg)
(princ)))
这是怎么回事?我读过李的教程,在那里它被用作一个函数。李·麦克似乎使用了一种完全不同的方法来处理错误阴影。如何使用setq重置所有系统变量? (setq*错误*(λ(…)…)只是(defun*error*(…)…)的一种替代方法这是另一种将接受单个参数的函数赋给*错误*符号的方法。 据我所知,*error*(handler)函数在代码崩溃/出错时用作回调函数
并且只接受一个参数-错误消息(该示例中的msg符号)。
我花了很长时间才理解回调函数(大多数常用于reactor和DCL(action\u tile))。
所以总的来说,它看起来像一个伪反应堆。。。带有:vlr LispWillError事件。
我想我并不真正理解回调函数。周末我会仔细阅读。谢谢
页:
[1]