wingo pushed a commit to branch master in repository guile. commit 5cd28ae0ace69ba044845e07619ec7237ba8fc51 Author: Andy Wingo <wi...@pobox.com> AuthorDate: Wed Feb 17 12:04:18 2021 +0100
Micro-optimization to delimiter? * module/ice-9/read.scm (read): Make sure we hit the "case" optimization. --- module/ice-9/read.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/module/ice-9/read.scm b/module/ice-9/read.scm index 98261e2..a14ad02 100644 --- a/module/ice-9/read.scm +++ b/module/ice-9/read.scm @@ -182,10 +182,11 @@ (take-until first (lambda (ch) (not (pred ch))))) (define (delimiter? ch) - (or (memv ch '(#\( #\) #\; #\" - #\space #\return #\ff #\newline #\tab)) - (and (memv ch '(#\[ #\])) (or (square-brackets?) (curly-infix?))) - (and (memv ch '(#\{ #\})) (curly-infix?)))) + (case ch + ((#\( #\) #\; #\" #\space #\return #\ff #\newline #\tab) #t) + ((#\[ #\]) (or (square-brackets?) (curly-infix?))) + ((#\{ #\}) (curly-infix?)) + (else #f))) (define (read-token ch) (take-until ch delimiter?))