(Arne Babenhauserheide)
2014-11-01: use cond instead of case to avoid checking against each char. use cond instead of case to avoid checking against each char.
diff --git a/wisp-scheme.w b/wisp-scheme.w --- a/wisp-scheme.w +++ b/wisp-scheme.w @@ -77,27 +77,29 @@ define repr-unsyntaxsplicing ; #,@ ; additions define : match-charlist-to-repr charlist - case : reverse charlist ; it is created via cons, so the last item is first. - : list #\. - . repr-dot - : list #\' - . repr-quote - : list #\, - . repr-unquote - : list #\` - . repr-quasiquote - : list #\, #\@ - . repr-unquotesplicing - : list #\# #\' - . repr-syntax - : list #\# #\, - . repr-unsyntax - : list #\# #\` - . repr-quasisyntax - : list #\# #\, #\@ - . repr-unsyntaxsplicing - else - . #f + let + : chlist : reverse charlist + 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-unquotesplicing + : equal? chlist : list #\# #\' + . repr-syntax + : equal? chlist : list #\# #\, + . repr-unsyntax + : equal? chlist : list #\# #\` + . repr-quasisyntax + : equal? chlist : list #\# #\, #\@ + . repr-unsyntaxsplicing + else + . #f define : wisp-read port let longpeek