Я пытался выучить Пролог и наткнулся на этот синтаксис на примере кода.
solve(Hs) :- Hs = [_,_,_,_,_], member(h(_, _, _, _, dog), Hs).
Это только часть кода, но я путаюсь с h(_,_,_,_,dog).
h(_,_,_,_,dog)
Любая помощь будет принята с благодарностью!
Подчеркивание _ просто указывает на то, что в этой позиции есть значение, но нас это не волнует.
_
Первая часть фактически говорит, что Hs - это список из 5 элементов.Вторая часть говорит, что в этом списке Hs один из элементов является составным термином h/5 (h с 5 подтермами), где последним является атом, dog.
Hs
h/5
dog
Все подчеркивания могут совпадать с чем угодно. Это дикая карта. Вы в основном ищете факт (?) С последней частью равной собаке.