Bonjour,

Je m'initie à Scheme à partir des articles de Linux Magazine.

J'ai réimplémenté memq comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
(define (memq obj lst)
	(if (eq? obj (car lst))
		lst
		(memq obj (cdr lst))))

(display (memq 3 '(1 2 3 4 5)))
(display (memq 6 '(1 2 3 4 5)))
Mais j'obtiens une erreur :
Error: (car) bad argument type: ()

Call history:

<eval> [memq] (memq obj (cdr lst))
<eval> [memq] (cdr lst)
<eval> [memq] (eq? obj (car lst))
<eval> [memq] (car lst)
<eval> [memq] (memq obj (cdr lst))
<eval> [memq] (cdr lst)
<eval> [memq] (eq? obj (car lst))
<eval> [memq] (car lst) <--
(3 4 5)