Schema: Wie um zu überprüfen, ob alle Elemente einer Liste sind identisch

Ich möchte erstellen Sie eine Scheme-Funktion ergibt true, wenn es übergeben wird eine Liste, die aus vollständig identischen Elemente. Eine solche Liste wäre '(1 1 1 1). Es ergäbe false mit so etwas wie '(1 2 1 1).

Dies ist, was ich habe, so weit:

    (define (list-equal? lst)
      (define tmp (car lst))
      (for-each (lambda (x) 
                   (equal? x tmp))
                 lst)
      )

Dies ist eindeutig falsch, und ich bin neu in diesem. Ich denke, ich bin nicht in der Lage zu äußern, der Schritt, wo ich soll zurück #t oder #f.

Vielen Dank im Voraus!

BEARBEITEN:
Ich fummelte ein wenig und fand eine Lösung, die scheint sehr gut zu funktionieren, und mit einer minimalen Menge an code:

(define (list-equal? lst)
 (andmap (lambda (x) 
        (equal? x (car lst)))
      lst))

Nochmals vielen Dank für die Hilfe an alle.

InformationsquelleAutor Joseph | 2011-09-06
Schreibe einen Kommentar