如何在球拍中本地更改阅读规则?

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

以上是关于如何在球拍中本地更改阅读规则?的主要内容,如果未能解决你的问题,请参考以下文章

Android - 如何更改导航抽屉中的片段

当另一个片段中的数据发生更改时,如何刷新一个片段中的 RecyclerView

如何在屏幕方向更改时附加片段?

如何从活动中更改片段中视图的可见性

如何修正当AI打开左侧球拍时右侧球拍不起作用的问题?在canvs javascript的乒乓球比赛

如何在 Vs Code 中更改默认自动选择的用户片段行为