Dr. Racket Probleme mit SICP
Arbeite ich durch SICP. Derzeit, im ersten Kapitel, bin ich immer Probleme auftreten Schläger zu lassen, mich neu zu definieren "primitiven". Zum Beispiel, ich war unter den Eindruck, ich sollte in der Lage sein, willkürlich tun (define + 5)
- und das wäre in Ordnung, oder definieren den sqrt
Verfahren. Stattdessen bekomme ich diese:
define-values: cannot change constant variable: +
Habe ich die Sprache momentan eingestellt R5RS, die ich war unter dem Eindruck aufpassen würde, die Kompatibilitätsprobleme mit SICP.
- Diese (define + 5) tatsächlich funktioniert auf meinem Rechner (Ubuntu 12.04) mit DrRacket 5.1.3 nun. Haben Sie die Standardeinstellung ändern?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sogar, wenn möglich, werden solche neudefinitionen sind nicht etwas, das Sie tun sollten, ohne Sie wirklich zu verstehen, wie das system darauf reagieren. Zum Beispiel, wenn Sie neu definieren
+
, wird ein anderer code brechen? Die Antwort auf diese in-Schläger-Fall "Nein" - aber das ist, weil Sie nicht wirklich neu zu definieren+
: stattdessen definieren Sie eine neue+
, die nur mit Ihrem code verwenden können.Als für die Sprache, die Wahl-Schläger R5RS-Modus ist eine sehr strenge, und es ist nicht etwas, das Sie würden in der Regel verwenden möchten. Für eine viel mehr SICP-freundliche Umgebung, siehe Neil Van Dyke ist SICP-Support-Seite, die Sie mit einer Sprache, die speziell für das Buch. (Wenn ich mich Recht erinnere, hat es sogar die grafische Sprache, die die Bücher zeigt.)
Lief ich in Probleme versuchen zu arbeiten, bis Sie den RSA-beispielsweise hier (Teil des SICP Zeug):
http://mitpress.mit.edu/sicp/psets/ps3/readme.html
Damit dies funktioniert, die ich hatte, dies zu tun:
1) Führen, bis Sie den ersten download werden, indem diese an die Spitze der ein leeres file:
und dann auf "Ausführen"
2) Genießen Sie DrRacket ist sehr benutzerfreundlich, automatische herunterladen und installieren der PLaneT Neil-Modul, indem Sie zu schnappen Sie sich einen Kaffee 😉
3) Und dann, sobald es installiert ist, schließen Sie DrRacket.
4) wieder zu Öffnen, und wählen Sie SICP Planeten 1.15 aus der Wählen Sie Eine Sprache aus der Liste.
(Konnte ich nicht hinzufügen der Erklärung oben zu arbeiten, um mich beiseite zu tun, die zu der Durchführung der ersten download.)
Glück!
In der Sprache", müssen Sie deaktivieren Sie "disallow redefinition von ursprünglichen Bindungen". Dies behebt das Problem.