Wie findet man das N-te element einer Liste in Prolog

Ich bin versucht, schreiben Sie ein Prolog-code finden Sie die n-te element einer Liste.
Ich schrieb den code unten, aber es nicht zurückgeben, das element rechts.

match([Elem|Tail],Num,Num,Elem).
match([Elem|Tail],Num,C,MatchedNumber):-
   match(Tail,Num,N,Elem),
   C is N+1.

In der ersten Zeile sage ich, wenn das gewünschte element Anzahl ist gleich zu kontern, dann geben Sie das erste element der aktuellen Liste an die variable namens MatchedNumber. Dieser code gibt die Num und Counter Recht, aber ich weiß nicht, warum, wenn ich einstellen will MatchedNumber als Elem, es gibt immer das erste element der Liste.

1: was ist falsch an diesem code?
2: Wie kann ich sagen, dass anstatt zu zeigen, die aufeinander abgestimmt Reihe, entfernen Sie es aus der Liste?

InformationsquelleAutor Amir Jalilifard | 2015-05-26

Schreibe einen Kommentar