6 Stimmen

Woran erkenne ich, ob eine Liste einen dritten Eintrag hat?

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X