2 votes

Procédure Memv dans Scheme

(define memv2
   (lambda (x l)
    (cond
     ((null? l) #f)
     ((eqv? (car l) x) 
        cdr l)
      (else
        (memv2 x (cdr l))))

J'étudie pour un examen - ce code a été fourni dans mes notes comme une réplique de la fonction memv intégrée dans Scheme. Je me demandais si quelqu'un pouvait expliquer ce que fait le #f dans cette situation. Est-ce qu'il sort de la boucle ?

(memv prend un élément et une liste, et renvoie la liste à partir de l'élément, par exemple : (memv 2 '(1 2 3 4 5)) renverrait (2 3 4 5))

1voto

Óscar López Points 97105

Les #f est renvoyée lorsque la procédure a fini de parcourir la liste, ce qui signifie que l'élément recherché n'a pas été trouvé, mettant ainsi fin à la récursivité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X