J'ai envie d'écrire une fonction nombre(N) qui affiche N,N-1,...,0
Par exemple, nombre(3) donne 3 2 1 0
Mais quand j'écris
Ca plante !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 nombre(N) :- write(N),nombre(N-1). nombre(0).
Discussion :








J'ai envie d'écrire une fonction nombre(N) qui affiche N,N-1,...,0
Par exemple, nombre(3) donne 3 2 1 0
Mais quand j'écris
Ca plante !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 nombre(N) :- write(N),nombre(N-1). nombre(0).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 nombre(N) :- write(N),N1 is N-1, nombre(N1). nombre(0) :- write(0).








c'est ce que j'ai fai ms ca plante a l'execution...
Envoyé par frankbe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 nombre(0) :- write(0). nombre(N) :- write(N),N1 is N-1, nombre(N1).
l'ordre d'évaluation des termes... tu bouclais infiniment![]()
On peut aussi faire ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 affiche(N) :- N1 is -N, forall(between(N1, 0, I1), (I is -I1, write(I), write(' '))).
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Partager