From 16967e979262f7f3d86e194295a1a3f5a7f68cd0 Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Fri, 18 Aug 2023 19:06:23 +0200 Subject: [PATCH 15/21] SRFI-119 (Wisp): cleanup char-list cond * module/language/wisp.scm (match-charlist-to-repr): use helper and re-indent --- module/language/wisp.scm | 38 +++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/module/language/wisp.scm b/module/language/wisp.scm index f3127c9d3..3ac128df2 100644 --- a/module/language/wisp.scm +++ b/module/language/wisp.scm @@ -97,30 +97,22 @@ ;; TODO: wrap the reader to return the repr of the syntax reader ;; additions -(define (match-charlist-to-repr charlist) - (let - ((chlist (reverse charlist))) +(define (equal-rest? chars . args) + (equal? chars args)) + +(define (match-charlist-to-repr char-list) + (let ((chars (reverse char-list))) (cond - ((equal? chlist (list #\.)) - repr-dot) - ((equal? chlist (list #\')) - repr-quote) - ((equal? chlist (list #\,)) - repr-unquote) - ((equal? chlist (list #\`)) - repr-quasiquote) - ((equal? chlist (list #\, #\@)) - repr-unquote-splicing) - ((equal? chlist (list #\# #\')) - repr-syntax) - ((equal? chlist (list #\# #\,)) - repr-unsyntax) - ((equal? chlist (list #\# #\`)) - repr-quasisyntax) - ((equal? chlist (list #\# #\, #\@)) - repr-unsyntax-splicing) - (else - #f)))) + ((equal-rest? chars #\.) repr-dot) + ((equal-rest? chars #\') repr-quote) + ((equal-rest? chars #\,) repr-unquote) + ((equal-rest? chars #\`) repr-quasiquote) + ((equal-rest? chars #\, #\@) repr-unquote-splicing) + ((equal-rest? chars #\# #\') repr-syntax) + ((equal-rest? chars #\# #\,) repr-unsyntax) + ((equal-rest? chars #\# #\`) repr-quasisyntax) + ((equal-rest? chars #\# #\, #\@) repr-unsyntax-splicing) + (else #f)))) (define (wisp-read port) "wrap read to catch list prefixes." -- 2.41.0