Bonjour a tous,
je suis actuellement en apprentissage du LISP, et j'ai un petit soucis....

je voudrai savoir comment faire pour que la 3eme ligne de mon code ci dessous modifie le paramètre a de la fonction.

Le probleme est que actuellement cela fonctionne a l'intérieur de la méthode, mais des que l'ont en sort, la variable 'a' reprend sa valeur initial (du a la porté de la modification.... )

Donc comment faire pour dépassé ce probleme ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
(defun addNode(a val)
  (if (arbre_vide? a)
      (arbre val NIL NIL) ; Si l'arbre est vide, on créer un arbre racine qui a pour valeur val
      (if (< val (arbre_racine a))
	  (if (null (arbre_sag a))
	    (rplacd a (list (list val nil nil) (arbre_sad a)))
	    (addNode (arbre_sag a) val)
	  )
	  (if (null (arbre_sad a))
	    (rplacd a (list (arbre_sag a) (list val nil nil)))
	    (addNode (arbre_sad a) val)
	  )	
      )
  )
)
 
(defun arbre(label sag sad)
      (list label sag sad)
)
Je vous remercie d'avance pour votre aide.