swi-prolog で配列検索をプログラムしようとしています。以下に印刷された現在のコードを使用して、特定のインデックスで要素を取得できますが、特定の要素のインデックス[es]も取得できるようにしたいと考えています。
aget([_|X],Y,Z) :- Y \= 0, Y2 is (Y-1), aget(X,Y2,Z).
aget([W|_],Y,Z) :- Y = 0, Z is W.
例 1: aget([9,8,7,6,5],1,N) {インデックス 1 の要素 8 を取得} 出力: N = 9. {正解}
例 2: aget([9,8,7,6,5],N,7) {要素 7 のインデックス 2 を取得} 出力: false {不正解}
私が理解した方法は、追加のプログラミングをほとんど行わなくても、swi-prolog がこのように機能するということでした。明らかに、私は何か間違ったことをしています。私を正しい方向に向けるか、私が間違っていることを教えていただければ幸いです。