Scheme-Funktion, die prüft, eine Liste für Duplikate

Schreiben brauche ich eine Scheme-Funktion, die prüft, eine Liste auf doppelte Einträge. Ich glaube, ich habe den workflow auf dem Papier, ich brauche nur Hilfe, um es aus dem Papier in code.

Zuerst muss ich prüfen, ob es eine leere Liste. Also ich habe...

(define (checkDupe mylist)
  (if (null? mylist)
      ()
      (checkDupeB mylist)
  )
)

Dann habe ich diese Art der "doppelten Rekursion", wo ich den ersten Nummer-gegen den rest der Liste, dann mit der zweiten Reihe gegen den rest der Liste, und so weiter, und wenn es eine übereinstimmung findet, es spuckt eine #t, wenn es trifft am Ende und keine übereinstimmung findet, wird das Ergebnis der Funktion ist #f. Das problem ist nur ich kann nicht umbrochen, mein Kopf herum diese Rekursion Zeug. Dies ist eine Hausaufgaben-Frage, aber ich bin geniunely interessiert, dieses Zeug, though.

Kann jemand werfen einige code bei mir und helfen mir, die Arbeit durch diese?

  • Möchten Sie vielleicht einen Blick auf den Entwurf von, Wie Design-Programme, 2nd edition, vor allem ab etwa Kapitel 4: ccs.neu.edu/home/matthias/HtDP2e/htdp2e-part2.html. Das Kapitel behandelt, wie die methodische Herangehensweise an diese Art der Liste Probleme.
  • um zu verstehen, Rekursion müssen Sie nur verstehen, zählen. wir rechnen mit natürlichen zahlen. was ist eine Natürliche Zahl? es ist entweder 0 oder eine mehr als eine Natürliche Zahl ist. Stell dir vor, du bist ein wizard in eine Mitte von einem heißen trockenen Wüste. kennen Sie eine Richtung, um jede Stadt in der Nähe, wie Sie sich entscheiden, zu gehen? Sie wollen finden Sie die nächste ein. wie können Sie wissen, eine Entfernung zu einer Stadt, ohne tatsächlich dorthin zu gehen? du bist ein Assistent; erstellen Sie eine Kopie von sich selbst, einen Schritt näher an die Stadt, und Fragen Sie, für die Antwort. Da er einen Assistenten zu, er wiederholt den Vorgang.
InformationsquelleAutor user1252121 | 2012-03-06
Schreibe einen Kommentar