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

Mr.*_*obo 0 scheme racket

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

[(exp + exp) (+ $1 $3)]
Run Code Online (Sandbox Code Playgroud)

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

jac*_*obm 7

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

(grammar (non-terminal-id
      ((grammar-id ...) maybe-prec expr)
      ...)
...)
Run Code Online (Sandbox Code Playgroud)

声明要解析的语法.每个grammar-id都可以是token-id 来自group-id令牌声明中的命名,或者它可以是语法声明中声明的非终结者ID.可选prec 声明适用于precs声明.这expr是一个"语义动作",当找到输入以匹配其相应的生产时,对其进行评估.

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