J'essaie simplement de rendre cette fonction moyenne pour être récursive de la queue. J'ai réussi à faire fonctionner ma fonction et qui a pris des efforts considérables. Ensuite, je suis allé demander à mon professeur si mon travail était satisfaisant et il m'a informé que
J'ai joué avec ce code depuis 2 heures et j'ai frappé un peu un mur. Quelqu'un peut-il m'aider à identifier ce que je ne comprends pas ici. P>
a parlé à mon professeur, il était! = utile p> Mes résultats attendus de mon test sont commentés juste après le 39/5 P> < / p>
3 Réponses :
Voici ce que j'ai maintenant
L'indentation a l'air étrange
(defun avg (list &optional (sum 0) (n 0)) (if list (avg (cdr list) (+ sum (car list)) (+ 1 n)) (/ sum n)))
(defun avg (lst) (if (null lst) 0 (labels ((find-avg (lst sum len) (if (null lst) (/ sum len) (find-avg (cdr lst) (incf sum (car lst)) len)))) (find-avg lst 0 (length lst))))
Ne pas nid
défun code> -s; Ils sont censés être une construction de définition de haut niveau. Le nom code> Sumup code> est entré dans l'environnement global malgré l'imbrication de la nidification. Les fonctions locales sont créées à l'aide de
FLET code> ou
étiquettes code>.
oui c'était l'autre note que mon professeur m'a donné de ne pas utiliser de défunger dans une autre fonction