¿Cuál es la mejor implementación del esquema para trabajar a través de SICP?

StackOverflow https://stackoverflow.com/questions/260685

  •  06-07-2019
  •  | 
  •  

Pregunta

He estado usando PLT Scheme , pero tiene algunos problemas. ¿Alguien sabe de una mejor implementación para trabajar a través de SICP?

¿Fue útil?

Solución

Use Esquema MIT .

Es recomendado por los autores de SICP, y se utiliza en MIT para el curso 6.001: Estructura e interpretación de programas de computadora .

Otros consejos

Utilice Racket (anteriormente Esquema PLT).

El IDR DrRacket es un excelente punto de partida para todo lo relacionado con el Esquema, incluido el SICP.

Para buscar palabras clave en la documentación, coloque el cursor sobre la palabra clave y presione F1 . En DrRacket ahora puede ver las imágenes directamente en REPL (el bucle read-eval-print-loop).

Soporte SICP para DrRacket , por Neil van Dyke.

Actualización: el nuevo paquete SICP está en http://pkgs.racket-lang.org / # [sicp]         Descárguelo con el Administrador de paquetes (en DrRacket) o use raco .          Manual

Actualización2: también si desea probar una nueva implementación del lenguaje de imágenes SICP, descargue sicp-pict2.rkt .

Esquema MIT / GNU , solo asegúrese de cargar la compatibilidad SICP paquete (sí, proporcionan bibliotecas específicas para mejorar la garantía del trabajo de los ejercicios SICP).

Acabo de comenzar a hacer SICP esta semana.

Actualmente, el esquema MIT está roto en Ubuntu Linux (9.04 " jaunty "). Podría estar funcionando en el futuro.

DrScheme está funcionando y funciona bien. Puede usar el paquete de soegard mencionado anteriormente o el paquete de Neil Van Dyke, que se basa en el paquete de soegard y está disponible en http : //www.neilvandyke.org/sicp-plt/ . Lo bueno de este paquete es que, cuando está instalado, puede usar el elemento de menú Idioma | Elegir idioma .... para seleccionar SICP.

Esto fue sorprendentemente molesto de hacer en macOS. Así es como funciona a partir de hoy, suponiendo que tenga Homebrew. (Es posible que desee ejecutar brew update de vez en cuando).

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

Ahora puede (requiere sicp) o simplemente ejecutar

racket -l sicp --repl

Que es posible que desee abreviar a esquema . En bash eso sería

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

que puede agregar a su ~/.bashrc

Esquema PLT funciona bastante bien, o Esquema MIT como sugirió Keparo. ¿Qué problemas tienes con él?

Esquema de POLLO tiene un biblioteca sicp que proporciona soporte para SICP. Puede instalarlo ejecutando chicken-install sicp y escribiendo esto al comienzo de su código fuente: (use sicp) .

Ahora estoy trabajando a través de SICP usando Chez Scheme . Es un dialecto bastante antiguo de Scheme, por lo que presumiblemente no está muy lejos de lo que se escribió alrededor del SICP.

Tenga en cuenta que la página del proyecto Chez Scheme vincula un código binario y fuente de Windows que se puede construir en plataformas similares a Unix. Pero si estás en una Mac, probablemente quieras hacer

brew chezscheme
man chez

Suponiendo que tiene homebrew , que realmente debería.

¿Por qué no el esquema MIT? Debido a que el front-end interactivo es Edwin, un editor que usa convenciones EMACS. (Actualmente, es un modo EMACS real, aunque solía implementarse en Scheme). Solía ??conocer EMACS básicos, pero mis habilidades se atrofiaron por el desuso, lo que me dice que volver a aprender este editor simplemente no vale la pena.

¿Por qué no DrRacket? Si hubiera visto las instrucciones de preparación de @ frederick-squid, podría haberlo probado. En cambio, traté de seguir las instrucciones oficiales de esquema y sicp, que están muy desactualizadas. Luego intenté hacer que el IDE entrara en modo esquema, lo que parece ser intuitivo pero no lo es.

Simplemente demasiados problemas. Y no estoy seguro de querer entrar en un IDE de diseño de lenguaje sofisticado, especialmente uno cuyo pobre apoyo de Scheme provocó la pregunta original.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top