2010-06-25 22 views
2

J'adore DrRacket IDE, mais actuellement je construis un projet pour lequel je voudrais être indépendant, ce qui signifie que je suis engagé à utiliser uniquement les procédures standard R5RS. La chose est, dans DrRacket il y a cette procédure appelée "erreur" que je voudrais continuer à utiliser mais je ne peux pas le trouver dans les normes. Ce que je voudrais savoir est s'il y a un moyen d'émuler cette procédure "erreur" en utilisant seulement les procédures Standards afin que le code soit portable entre différentes implémentations de Scheme.DrRacket, R5RS et la procédure d'erreur

J'ai essayé "affichage" mais il ne semble pas être tout à fait ce que je veux pour cela ne signale pas une erreur lors de la sortie.

Répondre

3

Eh bien, d'après ceci: http://srfi.schemers.org/srfi-23/srfi-23.html, la procédure d'erreur est assez largement disponible, donc je pense que vous seriez en sécurité en utilisant cela.

+0

Merci, je ne l'ai pas remarqué. Il y a beaucoup d'informations utiles sur cette page, même un exemple d'implémentation possible de la procédure "error". – Landau

+0

Chose drôle J'ai trouvé cette réponse en écoutant Corvus Corax :) – mcmlxxxvi

4

C'est la mise en œuvre que notre professeur nous a donné:

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