0
我有一個解析語法的謂詞。 語法的產品有:SWI-Prolog解析DCG謂詞不起作用
S-> B B->bB B->b
謂詞取意在列表和確定列表是否屬於語法。我的代碼如下:
s(List,[]):- b(List,[]).
b(List,[]):-'C'(List,b,X), b(X,[]).
b([b|List],List).
謂詞似乎能夠確定[B]是一個解決方案,但是,它無法檢測到[B,B,B]也是一種解決方案。
例如,
?-s([b],[]).
true.
?-s([b,b,b],[]).
false.
我覺得我的代碼的第二行是沒有做什麼,我也想,但我不知道如何解決它。
使用[標籤:DCG],而不是! 's - > b。 b - > [b],b。 b - > [b] .'用法:'短語(b,L)。' – false
哇,我大大地過度使這變得複雜。謝謝! –
更簡單:'b - > [b],([] | b).' – false