liste de longueur, l'insertion de l'élément

Je suis en train d'écrire un programme en Prolog, qui insère un élément dans une certaine position, si par exemple la

?- ins(a, [1,2,3,4,5], 3, X).
X = [1,2,a,3,4,5].

J'ai le code suivant:

ins(X,[H|T],P,OUT) :-
   length([T3],P),
   concatenate(X,[H],T),
   ins(...). 

Le problème est qu'il est l'insertion d'élément X dans l'index à partir de l'arrière (je sais même pas où est le problème -> le length([T3],P) qui est évidemment la longueur de la liste à partir de l'arrière pas de la tête) . J'essayais de me souvenir combien éléments n'ai-je couper et insérer X lorsque le "nombre de couper des éléments" = P, mais je ne peux pas vraiment écrire que dans le Prologue. Des idées?

OriginalL'auteur Johnzzz | 2012-04-08