Prolog - Déclarant clauses arithmétiques
Question
Une simple question, comment pourrais-je aller sur la déclaration d'une clause qui produirait le nombre spécifié +1 +2 et +3? J'ai essayé:
addup(Thenumber,Thenumber+1).
addup(Thenumber,Thenumber+2).
addup(Thenumber,Thenumber+3).
mais quand je le lance avec par exemple, Thenumber = 5, il retourne à seulement 5 + 1 + 5 2 5 + 3. Je l'ai essayé d'utiliser « est » pour le forcer à évaluer, mais il ne semble pas fonctionner. Toute aide serait appréciée.
La solution
Essayez ceci:
addup(X, Y) :- Y is X + 1.
ou
addup(X, X+1).
et vous la question devrait être AddUp (2, X)
alors X doit être 3. Si vous souhaitez paramétrer votre paramètre AddUp juste faire:
addup(X, Y, X + Y).
et demander à AddUp (5, 6, X).
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow