所以,我正在讀一本書,「形式語言學導論」,它描述了一種語言L(G) = {a^n ++ b^n | n > 0}
。平衡語言,2非終端符號,列表理解
它具有以下作品:
S -> ab | aSb
因此會產生下列語言:
a, ab, aabb, aaabbb, ...
我想知道我怎麼可以使用Haskell的列表解析創建這門語言。我知道我可以使用字符串進行列表理解,但我幾乎是初學者,並不確定如何獲得像我想要的這些字符串那樣的無限列表。
我想象的是這樣的:
[ x ++ y | x <- ["a","aa",..] y <- ["b","bb",..]]
這不是你所想的那樣。怎麼樣'[replicate n'a'++ replicate n'b'| n < - [1 ..]]??這似乎是最忠實的翻譯... – Alec
「a」不是該語言的一部分。 –