Je travaille via SICP. Actuellement, dans le premier chapitre, j'ai des problèmes pour que Racket me permette de redéfinir les "primitives". Par exemple, j'avais l'impression que je devrais être capable de faire arbitrairement "(définir + 5)" et ce serait bien ou redéfinir la procédure sqrt. Au lieu de cela, j'obtiens ceci: "define-values: impossible de changer la variable constante: +" J'ai le langage actuellement défini sur R5RS, qui, selon moi, prendrait soin des problèmes de compatibilité avec SICP.
Réponses
Trop de publicités?Même si cela est possible, des redéfinitions ne sont pas quelque chose que vous devriez faire sans vraiment comprendre comment le système va réagir à cela. Par exemple, si vous redéfinissez +
, sera tout autre code de pause? La réponse dans la Raquette de l'affaire est "non", mais c'est parce que vous n'avez pas vraiment à redéfinir +
: au lieu de cela, vous définissez un nouveau +
, dont seulement votre code peut utiliser.
Comme pour le choix de la langue -- Raquettes de R5RS mode est très stricte, et ce n'est pas quelque chose que vous ne voulez généralement à utiliser. Pour un beaucoup plus SICP respectueux de l'environnement, voir Neil Van Dyke SICP page d'assistance qui vous fournira une langue faite spécialement pour le livre. (Autant que je me souvienne, il a même le langage graphique que les livres s'affiche.)
J'ai couru dans des problèmes d'essayer de travailler à travers le RSA exemple ici (partie de la SICP trucs):
http://mitpress.mit.edu/sicp/psets/ps3/readme.html
Pour obtenir ce travail que j'avais à faire ceci:
1) Exécuter à travers le téléchargement initial en ajoutant ceci au sommet d'un fichier vide:
#lang planet neil/sicp
et puis en appuyant sur "Exécuter"
2) Profiter de DrRacket très convivial, automatique de télécharger et d'installer la Planète Neil module en allant prendre un café ;-)
3) Et puis une fois qu'il est installé, fermez DrRacket.
4) les Rouvrir, et choisir SICP Planète 1.15 Choisir Une liste de Langues.
(Je ne pourrais pas obtenir de l'ajout de la déclaration en haut à travailler pour moi, hormis le fait que pour effectuer le téléchargement initial.)
Bonne chance!