这个语法是什么意思? (序言)

时间:2010-11-05 21:50:11

标签: prolog

我一直在尝试学习Prolog,并在一些示例代码中遇到了这种语法。

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

这只是代码的一部分,但我对h(_,_,_,_,dog)感到困惑。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:6)

下划线_只表示该位置有值,但我们并不关心它。

第一部分有效地说Hs是一个5项列表。第二部分说明在Hs的列表中,其中一个项是复合项h/5(h有5个子项),其中最后一个是原子,dog

答案 1 :(得分:2)

所有下划线都可以匹配任何内容。这是一张外卡。你基本上是在寻找一个事实(?),最后一部分等于狗。