8.4 Recursivite sur les mots

Consulter la liste des primitives p.155 afin de comprendre le rôle des primitives mot, dernier, et saufdernier.



Voici une procédure récursive qui permet d’inverser l’ordre des lettres d’un mot

 pour inversem :m
 si vide? :m [retourne "]
 retourne mot dernier :m inversem saufdernier :m
 fin
 
 ecris inversem "abcde
 edcba

On dit qu’un mot est un palindrome si on peut le lire dans les deux sens (exemples : radar, laval ...).

 # teste si le mot :m est un palindrome
 pour palindrome :m
 si  :m=inversem :m [retourne vrai] [retourne faux]
 fin

Et enfin ce joli petit programme (Merci Olivier SC) :

 pour palin :n
 si palindrome :n [ecris :n stop]
 ecris (liste :n "PLUS inversem :n "EGAL somme :n inversem :n)
 palin :n + inversem :n
 fin
 
 palin 78
 78 PLUS 87 EGAL 165
 165 PLUS 561 EGAL 726
 726 PLUS 627 EGAL 1353
 1353 PLUS 3531 EGAL 4884
 4884