Frage

Ich arbeite durch SICP. Derzeit im ersten Kapitel, ich habe Probleme Racket immer lassen Sie mich „Primitiven“ neu zu definieren. Zum Beispiel war ich unter dem Eindruck, dass ich in der Lage sein, willkürlich sollte (define + 5) zu tun und das wäre in Ordnung sein, oder die sqrt Verfahren neu zu definieren. Stattdessen habe ich diese:

define-values: cannot change constant variable: +

Ich habe die Sprache, die derzeit auf R5RS gesetzt, was ich hatte den Eindruck, würde kümmern sich um die Kompatibilitätsprobleme mit SICP.

War es hilfreich?

Lösung

Auch wenn möglich, solche Neudefinition ist nicht etwas, dass Sie ohne wirklich verstehen tun sollen, wie das System auf diese reagiert. Zum Beispiel, wenn Sie neu zu definieren +, wird jeder andere Code brechen? Die Antwort auf diese Frage in Racket Fall „nein“ ist - aber das ist, weil Sie neu zu definieren + bekommen nicht wirklich: Sie stattdessen definiert einen neue +, die nur Ihr Code verwenden <. / p>

Wie für die Sprachwahl - Rackets R5RS-Modus ist ein sehr streng ein, und es ist nicht etwas, dass Sie in der Regel verwenden wollen würden. Für eine viel mehr SICP freundliche Umgebung finden Neil Van SICP Support-Seite des Dyke , die Sie mit einer Sprache für das Buch speziell gemacht bieten. (IIRC, es hat sogar die grafische Sprache, dass die Bücher vorführen.)

Andere Tipps

lief ich in Probleme der Arbeit durch das RSA Beispiel versuchen, hier (Teil der SICP Sache):
http://mitpress.mit.edu/sicp/psets/ps3/readme.html

Um diese Arbeit hatte ich dies zu tun:

1) Run durch den ersten Download durch diese Zugabe zu der Spitze einer leeren Datei:

#lang planet neil/sicp

und dann auf "Ausführen"

Schlagen Genießen Sie

2) DrRacket ist sehr benutzerfreundlich, automatische herunterladen und installieren Sie das plant Neil Modul, indem Sie einen Kaffee greifen; -)

3) Und dann, sobald es installiert ist, in der Nähe DrRacket.

4) wieder öffnen, und SICP PLaneT 1.15 vom wählen sie eine Sprache Liste auswählen.
(Ich konnte nicht beiseite für mich die Erklärung an der Spitze an der Arbeit Zugabe zu tun, dass der ersten Download auszuführen.)

Viel Glück!

In der Sprache Panel, müssen Sie deaktivieren „disallow Neudefinition der anfänglichen Bindung.“ Dies behebt das Problem.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top