我正在阅读Rebol Wikipedia页面。
“解析表达式是用解析方言编写的,与do方言一样,它是数据交换方言的面向表达式的子语言。与do方言不同,解析方言使用表示运算符和最重要的非终结符的关键字”
你能解释一下什么是terminals
和nonterminals
?我已经阅读了很多有关语法的内容,但不了解它们的含义。这是另一个经常使用此词的链接。
我想编译这个列表理解:
>> lc [reduce [x y] | x in [1 2 3] y in [4 5 6]]
== [[1 4] [1 5] [1 6] [2 4] [2 5] [2 6] [3 4] [3 5] [3 6]]
Run Code Online (Sandbox Code Playgroud)
在:
collect [
foreach x [1 2 3] [
foreach y [4 5 6] [
keep/only reduce [x y]]]]
Run Code Online (Sandbox Code Playgroud)
或者:
>> lc [reduce [x y] | x in range [1 5] y in range reduce[1 x] if x + y > 4]
== [[3 …
Run Code Online (Sandbox Code Playgroud)