如何在球拍中本地更改阅读规则?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在球拍中本地更改阅读规则?相关的知识,希望对你有一定的参考价值。
我正在考虑在球拍中嵌入J,因为我发现了existing project,我想在此基础上再接再厉。就像现在一样,通过传递J program string to a Racket form进行评估:
> (j "4 * 1 + 4")
> 20
由于J使用引号,双引号和其他ASCII字符作为字符串传递时需要转义,我想将评估策略更改为:
> (j 4 * 1 + 4)
> 20
这对应于评估球拍形式的cdr
,显然需要locally change the reader。但是,当我尝试将评估功能更改为:
(define (j exp)
(jeval #reader"jexp.rkt" exp))
我得到一个“未绑定的标识符”错误,因为输入端口'exp'被解释为litterally而不用'exp'替换它的值。我该如何管理?
答案
像这样改变读者不是可以在解析过程的后期完成的事情。在你给出的例子中,Racket如何知道嵌入式J程序何时结束?
我想你想看一下“球拍指南”中的“创建语言”部分:
https://docs.racket-lang.org/guide/languages.html
以上是关于如何在球拍中本地更改阅读规则?的主要内容,如果未能解决你的问题,请参考以下文章
当另一个片段中的数据发生更改时,如何刷新一个片段中的 RecyclerView