假设我将“a-list”称为零个或多个“a”的列表:
% as = [a,a,a]
as --> [].
as --> [a], as.
Run Code Online (Sandbox Code Playgroud)
假设我想表示一个“b-list”,一个零个或多个 a-list 的列表:
% bs := [ as, as ]
% bs = [ [a,a,a], [a] ]
bs --> [].
bs --> [A], { phrase(as,A) }, bs.
Run Code Online (Sandbox Code Playgroud)
是否有一些更惯用的说法,不需要使用花括号将 DCG 退出到“正常 Prolog”,只需phrase()再次调用?