DrRacket,R5RS和错误程序

时间:2010-06-25 18:15:19

标签: scheme racket r5rs

我喜欢DrRacket IDE,但目前我正在构建一个宠物项目,我想独立于它,这意味着我只想使用R5RS标准程序。

问题是,在DrRacket中有一个名为“错误”的程序我想继续使用,但我在标准中找不到它。

我想知道的是,是否有办法仅使用标准程序来模拟“错误”程序,以便代码可以在不同的Scheme实现之间移植。

我尝试过“显示”,但它似乎并不是我想要的,因为它不会在输出时发出错误信号。

2 个答案:

答案 0 :(得分:4)

这是我们讲师给我们的实施:

;;; 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)) 

答案 1 :(得分:3)

嗯,根据这个:http://srfi.schemers.org/srfi-23/srfi-23.html,错误程序非常广泛,所以我认为你可以安全地使用它。