我試圖在Prolog中瞭解更多關於DCG的內容,同時通過閱讀不同來源,我注意到在某些情況下,短語並未被使用?什麼時候在Prolog中使用短語?
從瞭解的Prolog現在的網站,它提出這個例子:
s --> np,vp.
np --> det,n.
vp --> v,np.
vp --> v.
det --> [the].
det --> [a].
n --> [woman].
n --> [man].
v --> [shoots].
然後,他們使用查詢s(X,[])
來生成語法的所有句子。 我試過phrase(s,L)
,它也產生了語法描述的所有句子。
使用s(X,[])
和phrase(s,L)
有什麼區別?何時應該使用短語?
你的意思是'(X,[])'不是'([],X)'。查詢'([],X)'將失敗。 :) – lurker