2010-11-05 3 views
4

Я пытался изучить Prolog и натолкнулся на этот синтаксис на некоторый пример кода.Что означает этот синтаксис? (Prolog)

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

Это только часть кода, но я запутался с h(_,_,_,_,dog) делает.

Любая помощь была бы принята с благодарностью!

ответ

5

Символы подчеркивания _ просто указывают, что в этом положении есть значение, но мы не заботимся об этом.

Первая часть эффективно говорит, что Hs - это список из 5 предметов. Во второй части говорится, что в этом списке Hs один из элементов представляет собой составной термин h/5 (h с 5 субтермами), где последним является атом, dog.

2

Все подчеркивания могут соответствовать любому. Это дикая карта. Вы в основном ищете факт (?) С последней частью, равной собаке.

Смежные вопросы