Что означает этот синтаксис?(Пролог) - PullRequest
4 голосов
/ 06 ноября 2010

Я пытался выучить Пролог и наткнулся на этот синтаксис на примере кода.

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

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

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

Ответы [ 2 ]

6 голосов
/ 06 ноября 2010

Подчеркивание _ просто указывает на то, что в этой позиции есть значение, но нас это не волнует.

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

2 голосов
/ 06 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...