From c339234632cd0e188ea5063393efe788637901f2 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Fri, 15 Sep 2017 12:14:26 +0000 Subject: [PATCH] Issue #225 - Added error-object interfaces This is only a rough-cut of the actual implementation, though. --- scheme/base.sld | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/scheme/base.sld b/scheme/base.sld index 8dcbbfb9..75ecc2f1 100644 --- a/scheme/base.sld +++ b/scheme/base.sld @@ -113,9 +113,9 @@ current-input-port current-error-port call-with-port - ; TODO: error-object? - ; TODO: error-object-message - ; TODO: error-object-irritants + error-object? + error-object-message + error-object-irritants ; TODO: file-error? ; TODO: read-error? error @@ -1053,6 +1053,12 @@ (make-parameter (Cyc-stdin))) (define current-error-port (make-parameter (Cyc-stderr))) + ;; TODO: only a first-step, error objects need to be more robust + (define (error-object? x) + (and (pair? x) + (string? (car x)))) + (define error-object-message car) + (define error-object-irritants cdr) (define (error msg . args) (raise (cons msg args))) (define (raise obj)