0

我可以在 repl 或在使用加载的文件中使用大多数尖锐符号读取宏(load)

#;1> #${ abcdef }
#${abcdef}

但我不能使用外部声明语法#> <#

#;1> #>#include "md5-base.c"<#
Error: invalid sharp-sign read syntax: #\>

诚然,可能没有理由在 repl 中使用它,但我正在尝试编写一个程序,该程序(load)在运行时作为其他源并自省它们,当它遇到语法时它就会崩溃:

(load "/tmp/temp29fe.31217/md5/md5.scm")
; loading /tmp/temp29fe.31217/md5/md5.scm ...

Error: (line 11) invalid sharp-sign read syntax: #\>

        Call history:

        <syntax>          (load "/tmp/temp29fe.31217/md5/md5.scm")
        <eval>    (load "/tmp/temp29fe.31217/md5/md5.scm")      <--

我怎样才能(load)包含#>尖锐语法的文件?

4

1 回答 1

0

该语法仅在编译器中受支持;在评估代码中使用它是没有意义的。如果您只对使用read它感兴趣,您可能可以使用set-sharp-read-syntax 定义自己的覆盖!.

于 2016-08-15T06:39:45.437 回答