Une fonction qui retourne combien de fois il a été appelé dans le schéma ressembleraitSimuler Variables statiques dans le schéma
(define count
(let ((P 0))
(lambda()
(set! P (+ 1 P))
P)))
(list (count) (count) (count) (count)) ==> (list 1 2 3 4)
Mais supposons que nous avons une expression qui ressemble à ceci
(map ______ lst)
et nous voulons que pour évaluer à
(list 1 2 3 ... n)
where n = (length list)
Le problème nécessite que nous utilisions une déclaration lambda dans le vide, et nous ne pouvons pas utiliser de définitions auxiliaires comme (count) dans le blanc, donc
(lambda (x) (count))
n'est pas autorisé. Il suffit de remplacer (compter) avec la définition précédente comme ceci:
(map
(lambda (x)
((let ((P 0))
(lambda()
(set! P (+ 1 P))
P))))
L)
ne fonctionne pas non plus.
Des suggestions?
Merci! Cela a fonctionné! – user1968574
@ user1968574 de rien, s'il vous plaît n'oubliez pas d'accepter la réponse qui vous a été le plus utile par en cliquant sur la coche à sa gauche –