我正在尝试了解 prolog 和 dcg 的基本语法,但是很难获得有关真正基本内容的正确信息。看看下面的代码,我基本上只是想实现这样的东西:
Output = te(a, st).
Code:
test(te(X,Y)) --> [X], test2(Y).
test2(st(_X)) --> [bonk].
?- test(Output, [a, bonk],[]).
Output = te(a, st(_G6369)).
我想做的就是在末尾添加“st”这个词,我最接近的方法是这样做,但不幸的是 st 后面跟着一堆废话,很可能是因为 singleton _X
。我只是希望我Output
包含如下内容:te(a, st).