Ich habe eine Funktion, die eine Liste nimmt, die entweder zwei oder drei Elemente hat.
;; expecting either ((a b c) d) or ((a b c) d e)
(define (has-third-item ls)
(if (null? (caddr ls))
false
true)
)
Aber dieser Code schlägt fehl mit
mcar: expects argument of type <mutable-pair>; given ()
für den Ausdruck (null? (caddr ls)) Ausdruck.
Ich habe auch versucht
(eq? '() (caddr ls))
aber auch das hat nicht funktioniert. Woran erkenne ich, ob es ein drittes Element gibt oder nicht?