我喜欢 DrRacket IDE,但目前我正在构建一个我希望独立于它的宠物项目,这意味着我致力于仅使用 R5RS 标准程序。
问题是,在 DrRacket 中有一个名为“错误”的过程,我想继续使用它,但我在标准中找不到它。
我想知道是否有一种方法可以仅使用标准过程来模拟“错误”过程,以便代码可以在不同的方案实现之间移植。
我尝试过“显示”,但它似乎并不完全是我想要的,因为输出时不会发出错误信号。
这是我们的讲师给我们的实现:
;;; create binding for error
(define error #f)
;;; capture toplevel continuation
;;; assign a function to error, allowing a variable number of arguments to
;;; be passed
(call-with-current-continuation (lambda (k)
(set! error
(lambda error-arguments
(display ">>>> ERROR ")
(newline)
(k error-arguments)))
'done))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)