我一直在尝试学习Prolog,并在一些示例代码中遇到了这种语法。
solve(Hs) :- Hs = [_,_,_,_,_],
member(h(_, _, _, _, dog), Hs).
这只是代码的一部分,但我对h(_,_,_,_,dog)
感到困惑。
非常感谢任何帮助!
答案 0 :(得分:6)
下划线_
只表示该位置有值,但我们并不关心它。
第一部分有效地说Hs
是一个5项列表。第二部分说明在Hs
的列表中,其中一个项是复合项h/5
(h有5个子项),其中最后一个是原子,dog
。
答案 1 :(得分:2)
所有下划线都可以匹配任何内容。这是一张外卡。你基本上是在寻找一个事实(?),最后一部分等于狗。