DrRacket, R5RS и процедура ошибки - PullRequest
3 голосов
/ 25 июня 2010

Мне нравится DrRacket IDE, но в настоящее время я создаю проект для домашних животных, в котором я хотел бы быть независимым от него, то есть я обязан использовать только стандартные процедуры R5RS.

Дело в том, что вDrRacket есть эта процедура, называемая «ошибка», которую я хотел бы продолжить использовать, но я не могу найти ее в стандартах.

Я хотел бы знать, есть ли способ эмулировать эту процедуру «ошибки», используя только стандартные процедуры, чтобы код переносился между различными реализациями Схемы.

попытался "показать", но это, кажется, не совсем то, что я хочу, что не сигнализирует об ошибке при выводе.

Ответы [ 2 ]

4 голосов
/ 03 ноября 2011

Это реализация, которую наш лектор дал нам:

;;; 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)) 
3 голосов
/ 25 июня 2010

Ну, в соответствии с этим: http://srfi.schemers.org/srfi-23/srfi-23.html, процедура ошибки довольно широко доступна, поэтому я думаю, что вы были бы в безопасности, используя это.

...