DrRacket, R5RS и порядок действий при ошибке

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

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

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

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


person Landau    schedule 25.06.2010    source источник


Ответы (2)


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

person corvuscorax    schedule 25.06.2010
comment
Спасибо, я этого не заметил. На этой странице много полезной информации, даже пример возможной реализации процедуры ошибки. - person Landau; 25.06.2010
comment
Забавно, что я нашел этот ответ, слушая Corvus Corax :) - person mcmlxxxvi; 16.02.2014

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

;;; 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)) 
person Homulvas    schedule 02.11.2011