2010-05-03 5 views
2

Предположим, что результатом является третий параметр.Prolog Вопрос

a (1, [Hd | Tl], Hd). a (N, [ | Tl], Elem): - N> 1, N1 - N - 1, a (N1, Tl, Elem).

Я пытаюсь понять, что это делает ....

+0

Я признаю, что мой пролог - это не то, что должно быть - но полностью кроме этого, у меня нет вопроса здесь ... – Jasper

ответ

1

Это дает элемент Nth списка. Вы можете прочитать следующее определение:

a(1, [Hd | Tl], Hd). 

Hd является первым элементом списка [Hd | Tl], то есть список, который начинается с Hd, за которым следует список Tl.

a(N, [ | Tl], Elem) :- N > 1, N1 is N - 1, a(N1, Tl, Elem). 

Элем является Nth элемент списка, если и только если это N1 й элемент его хвоста, где N1 является N-1.