我一直在嘗試學習Prolog,並在一些示例代碼中遇到了這種語法。這個語法是什麼意思? (Prolog)
solve(Hs) :- Hs = [_,_,_,_,_],
member(h(_, _, _, _, dog), Hs).
這僅僅是代碼的一部分,但我很困惑與h(_,_,_,_,dog)
一樣。
任何幫助將不勝感激!
我一直在嘗試學習Prolog,並在一些示例代碼中遇到了這種語法。這個語法是什麼意思? (Prolog)
solve(Hs) :- Hs = [_,_,_,_,_],
member(h(_, _, _, _, dog), Hs).
這僅僅是代碼的一部分,但我很困惑與h(_,_,_,_,dog)
一樣。
任何幫助將不勝感激!
下劃線_
只是表示該位置存在價值,但我們不關心它。
第一部分有效地說,Hs
是一個5項目列表。第二部分說在Hs
的列表中,其中一個項目是複合術語h/5
(h有5個子項),其中最後一個是原子dog
。
所有的下劃線都可以匹配任何東西。這是一張通配符。你基本上是在尋找一個事實(?),最後一部分等於狗。