tout en apprenant Prolog, je suis en train de résoudre le problème suivant, en utilisant des accumulateurs:problème avec accumulateurs dans Prolog
Ecrire un addone2 sous-jacente/dont le premier argument est une liste d'entiers, et dont le deuxième argument est la liste des entiers obtenus en ajoutant 1 à chaque entier dans la première liste. Par exemple, la requête
addone([1,2,7,2],X).
devrait donner
X = [2,3,8,3].
J'ai créé le code suivant:
addone([], _).
addone([E|Tail], [R|Rs]) :-
NewE is E+1,
append([R|Rs], [NewE], NewRs),
addone(Tail, NewRs).
Mais il ne fonctionne pas. Quelqu'un peut-il me dire pourquoi? Alors, comment utiliser les accumulateurs dans Prolog?
Merci!
Merci pour votre aide Frank! N'a pas maintenant à propos de cette "astuce" sans utiliser la liste append. Merci aussi à anthares pour corriger mon cas de base! –
Merci Frank! Ce truc n'est pas évident du tout et très pratique! – ProfVersaggi