我喜欢DrRacket集成开发环境,但目前我正在构建一个我喜欢的项目,我希望独立于它,这意味着我被委托只使用R5RS标准过程。
问题是,在DrRacket中有一个称为“错误”的过程,我想继续使用它,但在标准中找不到它。
我想知道的是,是否有一种方法可以只使用标准过程来模拟“错误”过程,以便代码可以在Scheme的不同实现之间移植。
我尝试过"display“,但它似乎不是我想要的,因为它不会在输出时发出错误信号。
发布于 2010-06-26 02:21:10
好吧,根据这个:http://srfi.schemers.org/srfi-23/srfi-23.html,错误过程是相当广泛的,所以我认为你使用它是安全的。
发布于 2011-11-03 04:43:32
这是我们的讲师给我们的实现:
;;; 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)) https://stackoverflow.com/questions/3120379
复制相似问题