我可以在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)
包含#>
sharp-syntax的文件?
该语法仅在编译器中支持;在求值代码中使用它是没有意义的。如果您只对在上面使用read
感兴趣,那么您可以使用set-sharp-read-syntax定义您自己的覆盖!