什么$后跟一个数字(例如1美元,3美元)的计划呢?

时间:2012-03-04 23:25:57

标签: scheme racket

我正在分析代码,我看到了这个

[(exp + exp) (+ $1 $3)]

现在我想知道这是做什么的?是否需要该列表的第一个和第三个元素?那个设置在左侧甚至被认为是一个列表?我正在学习这门语言,但我已经度过了非常艰难的时光,所以你们一直都是最好的帮助。谢谢!

1 个答案:

答案 0 :(得分:7)

鉴于您之前的问题,我猜这是在Racket的解析器工具库的上下文中。来自docs

(grammar (non-terminal-id
      ((grammar-id ...) maybe-prec expr)
      ...)
...)
  

声明要解析的语法。每个grammar-id都可以是token-id   来自令牌声明中命名的group-id,或者它可以是   语法声明中声明的非终结者id。可选prec   声明适用于precs声明。 expr是一个“语义”   动作,“当发现输入与其匹配时评估   相应的生产。

     

每个操作都是与其解析器具有相同范围的Racket代码   定义,除了变量$1,...,$i被绑定,其中i   是相应生产中的语法ID数。每个$k   被绑定到第k个语法符号的动作结果   生产权,如果该语法符号是非终端,或   如果语法符号是终端,则存储在令牌中的值。