此时此刻,我正在阅读 Bjarne Stroustrups 的书“使用 C++ 编程原则和实践”的第 6.4.2 段。在本段中,他演示了以下列表语法:
List:
"{" Sequence "}"
Sequence:
Element
Element "," Sequence
Element:
"A"
"B"
他说下面是按照上面语法的List:
{ A }
{ B }
{ A,B }
{A,A,A,A,B }
不应该 Element ","Sequence
是 Sequence ","Element
来制作 { A,B }
和 { A,A,A,A,B }
根据此语法正确列表?
我如何理解这个语法,A
是一个Sequence
。这使得 B
成为 Element
,对吧?
最佳答案
Element ","Sequence
和Sequence ","Element
在这里是等价的。
A
和B
都是元素
:
Element:
"A"
"B"
但每个 Element
也是一个有效的 Sequence
:
Sequence:
Element
基本上,
Sequence:
Element "," Sequence
的意思是“如果你有一个元素、一个逗号和一个序列,那就形成了另一个序列”。 IE。此规则允许您在序列的开头添加元素以扩展它。
Sequence:
Sequence "," Element
的意思是“如果你有一个序列、一个逗号和一个元素,那将形成另一个序列”。此规则允许您在序列末尾添加元素以扩展它。
无论哪种情况,最终结果都是(逗号分隔)元素的列表。
关于grammar - Bjarne 的编程书中的列表语法示例有误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56040128/