如何加载包含 #><# sharp-sign 读取语法的 Chicken Scheme 文件?
How to load Chicken Scheme files that contain #><# sharp-sign read syntax?
我可以在 repl 或使用 (load)
:
加载的文件中使用大多数 sharp-sign read macros
#;1> #${ abcdef }
#${abcdef}
但我不能使用 foreign declare 语法 #> <#
:
#;1> #>#include "md5-base.c"<#
Error: invalid sharp-sign read syntax: #\>
当然,可能没有理由在 repl 中使用它,但我正在尝试编写一个程序,在 运行 时 (load)
s 其他来源并反省它们,它是碰到语法就摔倒了:
(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)
包含 #>
清晰语法的文件?
该语法仅在编译器中受支持;在评估代码中使用它是没有意义的。如果您只对使用 read
感兴趣,您可以使用 set-sharp-read-syntax!.
定义自己的覆盖
我可以在 repl 或使用 (load)
:
#;1> #${ abcdef }
#${abcdef}
但我不能使用 foreign declare 语法 #> <#
:
#;1> #>#include "md5-base.c"<#
Error: invalid sharp-sign read syntax: #\>
当然,可能没有理由在 repl 中使用它,但我正在尝试编写一个程序,在 运行 时 (load)
s 其他来源并反省它们,它是碰到语法就摔倒了:
(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)
包含 #>
清晰语法的文件?
该语法仅在编译器中受支持;在评估代码中使用它是没有意义的。如果您只对使用 read
感兴趣,您可以使用 set-sharp-read-syntax!.