web-dev-qa-db-fra.com

Quelle est la meilleure mise en œuvre du programme pour travailler avec SICP?

J'avais utilisé PLT Scheme , mais il a quelques problèmes. Est-ce que quelqu'un connaît une meilleure implémentation pour travailler avec SICP?

61
Joel McCracken

Utilisez MIT Scheme .

Il est recommandé par les auteurs de SICP et est utilisé à MIT pour le cours 6.001: Structure et interprétation des programmes informatiques.

55
keparo

Utilisez Racket (anciennement Schéma PLT).

Le DrRacket IDE est un excellent point de départ pour tout ce qui concerne Scheme, y compris le SICP.

Pour rechercher des mots-clés dans la documentation, placez le curseur sur le mot-clé et appuyez sur F1. Dans DrRacket, vous pouvez maintenant voir les images directement dans le REPL (la boucle lecture-évaluation-impression).

Support SICP pour DrRacket , par Neil van Dyke.

Mise à jour: Le nouveau paquet SICP est à l'adresse http://pkgs.racket-lang.org/# [sicp] Téléchargez-le avec le gestionnaire de paquets (dans DrRacket) ou utilisez raco. Manuel

Update2: Si vous souhaitez également essayer une nouvelle implémentation du langage image SICP, téléchargez sicp-pict2.rkt .

79
soegaard

MIT/GNU Scheme , veillez simplement à charger la compatibilité SICP package (oui, ils fournissent des bibliothèques spécifiques pour améliorer la garantie du travail des exercices SICP).

11
Louis Gerbarg

Je viens de commencer à faire SICP cette semaine.

Actuellement, MIT Scheme est intégré dans Ubuntu Linux (9.04 "jaunty"). Cela pourrait fonctionner dans le futur.

DrScheme fonctionne et fonctionne bien. Vous pouvez utiliser le paquetage de soegard mentionné ci-dessus ou celui de Neil Van Dyke, basé sur le paquetage de soegard et disponible sur http://www.neilvandyke.org/sicp-plt/ . La bonne chose à propos de ce paquet est que, une fois installé, vous pouvez utiliser le menu Langue | Choisir la langue .... pour sélectionner SICP.

6
gdimike

C'était étonnamment agaçant de se faire sur macOS. Voici comment cela fonctionne aujourd'hui, en supposant que vous ayez Homebrew. (Peut-être vouloir exécuter brew update de temps en temps).

brew cask install racket
raco setup  # might be optional
raco pkg install sicp

Maintenant, vous pouvez (require sicp) ou simplement exécuter

racket -l sicp --repl

Ce que vous voudrez peut-être abréger en scheme. En bash ce serait

alias scheme='racket -l sicp --repl'

que vous pouvez ajouter à votre ~/.bashrc

3
Frederick Squid

Schéma PLT fonctionne plutôt bien, ou MIT Scheme comme suggéré par Keparo. Quels problèmes avez-vous avec elle?

1
Matt Curtis

CHICKEN Scheme a une bibliothèque de sicp qui fournit un support pour SICP. Vous pouvez l’installer en exécutant chicken-install sicp et en l’écrivant au début de votre code source: (use sicp).

1
htanata

Je travaille maintenant avec SICP en utilisant Chez Scheme . C'est un assez vieux dialecte de Scheme, donc ce n'est probablement pas très loin de ce sur quoi le SICP a été écrit.

Notez que la page de projet Chez Scheme lie un binaire Windows et une source pouvant être générée sur des plates-formes de type Unix. Mais si vous êtes sur un Mac, vous voudrez probablement faire

brew chezscheme
man chez

En supposant que vous avez homebrew , ce que vous devriez vraiment.

Pourquoi pas MIT Scheme? Parce que le frontal interactif est Edwin, un éditeur qui utilise les conventions EMACS. (Actuellement, c’est un mode EMACS réel, bien qu’il fût auparavant implémenté dans Scheme.) Je connaissais l’EMACS de base, mais mes compétences se sont atrophiées, ce qui me dit que le réapprentissage de cet éditeur ne vaut tout simplement pas la peine.

Pourquoi pas DrRacket? Si j'avais vu les instructions de préparation de @ frederick-squid, j'aurais peut-être essayé. Au lieu de cela, j'ai essayé de suivre les instructions officielles relatives au schéma et au sicp, qui sont sérieusement périmées. Ensuite, j'ai essayé de faire passer le IDE en mode schéma, ce qui semble être intuitif mais ne l’est pas.

Trop de problèmes. Et je ne suis pas sûr de vouloir entrer dans un IDE de conception de langage sophistiqué, en particulier un IDE dont le faible support de Scheme a suscité la question initiale.

0
Isaac Rabinovitch