minor error in srfi-152.sld
William D Clinger 27 Jul 2017 22:07 UTC
The second cond-expand of srfi-152.sld contains an error that's
hidden by mis-indentation. Properly indented, it's easier to see
the "(else (begin))" is in an illegal context, and there is no
else clause in the cond-expand:
(cond-expand
((library (rnrs bytevectors))
(export string-normalize-nfc string-normalize-nfkc
string-normalize-nfd string-normalize-nfkd)
(import (only (rnrs unicode)
string-normalize-nfc string-normalize-nfkc
string-normalize-nfd string-normalize-nfkd))
(else (begin))))
That file would be more portable if:
the name of the library were (srfi 152), not (srfi-152).
it exported the 32 procedures that are also exported by
(scheme base). Why shouldn't a program that imports
(rnrs base) instead of (scheme base) be allowed to use this
library without having to import (scheme base) and resolve
any extraneous conflicts that might result?
The string-span and string-break procedures are not specified by
SRFI 13, but their descriptions in the SRFI document do not note
that fact.
I do not expect to examine the sample implementation any further
because SRFI 152 should be easy to implement on top of (srfi 13),
(scheme text), and the R6RS libraries.
Will