Prolog问题

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

标签: prolog

假设第三个参数是结果。

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

我试图了解这是做什么的.......

1 个答案:

答案 0 :(得分:1)

它给出了列表的第N个元素。您可以按如下方式阅读定义:

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

Hd是列表[Hd | Tl]的第一个元素,即以Hd开头的列表,后面是列表T1。

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

Elem是列表的第N个元素,当且仅当它是尾部的N1元素时,N1N-1