Je suis en train d'écrire un programme dans le schéma, qui utilise la récursivité pour marcher dans la liste, et arrêter à un certain pointeur, lorsque le compteur atteint un certain nombre Nordre d'exécution des commandes dans le schéma
(define (functX N lst)
(define counter 1)
(cond
[(empty? lst) empty]
[(negative? N) empty]
[(< (length lst) N) empty]
[(<= counter N) ((set! counter (+ counter 1))(cons (first lst) (functX N (rest lst)))))]
[else empty]))
Je ne Je comprends, pourquoi la deuxième ligne du bas me cause des problèmes: l'erreur que j'obtiens est "procédure d'application: procédure attendue, donnée: '(1) (sans arguments)"
Il est à noter que si (f 5) renvoyait une fonction ((f 5)) l'exécuterait réellement. Juste pour montrer qu'un appel de fonction imbriqué n'est pas toujours une erreur. – EmFi
Je suis désolé, cette réponse ajoute plus de confusion – newprint
Vous voulez dire (set! Counter (+ counter 1)) est deux fois entre parenthèses? – newprint