Schema - Müssen, ersetzen Sie den Wert von einem element in der Liste
Meiner Liste packt Benutzereingaben, und erstellt eine Liste - diese Liste wird in Zeichen.
Ich würde gerne in der Lage sein zu überprüfen, ob die (car myList)
ist ein Zeichen wie #\1
oder #\2
, und ändern Sie dann das Auto von der Liste in 1 oder 2.
Ich bin mit DrRacket.
Das problem bisher wurde versucht, rufen Sie entweder (set! (car myList) 1)
oder (list-set! (car myList) 1 )
Beide sind Undefinierte Referenzen in meiner Umgebung.
Ich habe gerade angefangen zu arbeiten, die mit dem Schema heute für eine Universität Abtretung an.
Jede Hilfe wäre sehr dankbar wenn jemand Zeit hat
Dank
InformationsquelleAutor jordan | 2011-11-20
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standardmäßig Schläger nicht mutable-pairs, also nicht veränderbarer Listen entweder. Das bedeutet, dass die Werte von Paaren und Listen sind unveränderlich.
Allerdings können Sie
(require racket/mpair)
, die, wie der name schon sagt, bietet mutable-pairs. Sie verwenden dannmcons
,mcar
,mcdr
,mlist
usw. stattcons
,car
,cdr
,list
.Die anderen Antworten sind richtig, aber möglicherweise nicht, was Sie wollen. Die mehr idiomatische Scheme/Racket Weg, dies zu tun wäre, um eine Funktion schreiben, verbraucht der ursprünglichen Eingabe, und liefert eine neue, separate Liste mit den änderungen, die Sie wollen. (Dies ist besonders bevorzugt, daher Listen Unveränderbarkeit) eingestellt werden. So, zum Beispiel, könnten Sie schreiben
Dein Programm würde dann so etwas
Pairs im Schema sind veränderlich. Aber Sie mutieren nicht Sie mit
(set! (car myList) 1 )
; vielmehr würden Sie tun(set-car! myList 1)
. Sie müssen zuerst das paar, das Sie wollen, zu mutieren, und rufen Sie dannset-car!
oderset-cdr!
auf das paar (sobald Sie das tuncar
odercdr
drauf, das ist nur der Zugriff auf das paar und nicht mutiert es).Habe ich eine stack-Implementierung, die von dieser Website:
http://zoo.cs.yale.edu/classes/cs201/Fall_2007/materials/pdfs/stacks.pdf
Dem stack lassen Sie mich , denke auch ich, dass der "Spiegel" auf meiner Liste. nachdem ich überprüft, welches symbol dem Benutzer eingegebenen Zeichen war, würde ich einfach mit einem Tastendruck auf den entsprechenden Charakter auf meinem Stapel.
wenn jemand hat ähnliche Fragen, die auf dieser oder über meinen code /Funktionen, mailen Sie mir. ( ich glaube, mein E-Mail ist auf meine Benutzer-Seite?)
ich habe auch eine pseudo-code-Algorithmus für die Umwandlung von infix zu post-fix-notation (das war die Zuordnung hier)