gpt4 book ai didi

syntax - 如何在本地更改 Racket 中的阅读规则?

转载 作者:行者123 更新时间:2023-12-02 02:56:28 26 4
gpt4 key购买 nike

我正在研究嵌入 J在 Racket 中,因为我发现了一个 existing project ,我想以此为基础。就像现在一样,通过传递 J program string to a Racket form 来进行评估。 :

> (j "4 * 1 + 4")
> 20

由于 J 使用引号、双引号和其他在作为字符串传递时需要转义的 ASCII 字符,我想将评估策略更改为:

> (j 4 * 1 + 4)
> 20

对应于评估 Racket 形式的 cdr,显然需要 locally change the reader .但是,当我尝试将评估函数更改为类似以下内容时:

(define (j exp)
(jeval #reader"jexp.rkt" exp))

我得到一个“未绑定(bind)标识符”错误,因为输入端口“exp”被随意解释,没有用“exp”代替它的值。我该如何管理?

最佳答案

像这样改变阅读器是无法在解析过程的后期完成的。在您给出的示例中,Racket 应该如何知道嵌入式 J 程序何时结束?

我想你想看看 Racket 指南的“创建语言”部分:

https://docs.racket-lang.org/guide/languages.html

关于syntax - 如何在本地更改 Racket 中的阅读规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49030959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com