我正在阅读有关readtable的文档,在示例中有一个函数skip-witespace
,它将读取转发给下一个intressting字符。
(define (skip-whitespace port)
; Skips whitespace characters, sensitive to the current
; readtable's definition of whitespace
(let ([ch (peek-char port)])
(unless (eof-object? ch)
; Consult current readtable:
(let-values ([(like-ch/sym proc dispatch-proc)
(readtable-mapping (current-readtable) ch)])
; If like-ch/sym is whitespace, then ch is whitespace
(when (and (char? like-ch/sym)
(char-whitespace? like-ch/sym))
(read-char port)
(skip-whitespace port))))))
问题是为什么我们需要在测试之前从可读表中读取映射它是一个白色空间?特别是在示例中,我没有看到任何将角色破坏为whitesapce的映射。