2010-11-05 267 views
4

我一直在嘗試學習Prolog,並在一些示例代碼中遇到了這種語法。這個語法是什麼意思? (Prolog)

solve(Hs) :- Hs = [_,_,_,_,_], 
    member(h(_, _, _, _, dog), Hs). 

這僅僅是代碼的一部分,但我很困惑與h(_,_,_,_,dog)一樣。

任何幫助將不勝感激!

回答

5

下劃線_只是表示該位置存在價值,但我們不關心它。

第一部分有效地說,Hs是一個5項目列表。第二部分說在Hs的列表中,其中一個項目是複合術語h/5(h有5個子項),其中最後一個是原子dog

2

所有的下劃線都可以匹配任何東西。這是一張通配符。你基本上是在尋找一個事實(?),最後一部分等於狗。