He estado usando PLT Scheme, pero tiene algunos problemas. ¿Alguien sabe de una mejor implementación para trabajar a través del SICP?¿Cuál es la mejor implementación del Esquema para trabajar a través del SICP?
Respuesta
Use MIT Scheme.
Es recomendado por los autores de SICP, y se utiliza en MIT para el 6.001: Estructura e Interpretación de Programas de Computadora curso.
MIT/GNU Scheme, sólo asegúrese de cargar la compatibilidad SICP package (sí, proporcionan bibliotecas específicas para mejorar la garantía ejerce la SICP trabajo).
PLT Scheme funciona bastante bien, o MIT Scheme como sugirió Keparo. ¿Qué problemas tienes con eso?
Utilice Racket (anteriormente PLT Scheme).
El DrRacket IDE es un excelente punto de partida para todas las cosas Scheme incluyendo 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 loop read-eval-print).
SICP Support for DrRacket, por Neil van Dyke.
Actualización: El nuevo paquete SICP está en http://pkgs.racket-lang.org/#[sicp] descargar con el gestor de paquetes (en DrRacket) o utilizar raco
. Manual
Update2: Además, si desea probar una nueva implementación del lenguaje de imagen SICP, descargue sicp-pict2.rkt.
Nota : Neil van Dyke ha escrito un muy buen paquete de SICP para Racket. Use esto en lugar de mi anterior. – soegaard
hmm OP preguntó acerca de PLT Scheme que se convirtió en DrScheme y luego DrRacket y finalmente Rocket Lang ahora. – FUD
Advertencia: es imposible instalar de forma segura el paquete de soporte SICP. Cuando ejecuta ese código ('#lang planet neil/sicp'), intenta descargar cosas a través de http simple, por lo que los ataques MitM son posibles. Y al descargar el código que se ejecutará en su máquina, este es un gran problema. La página no está disponible a través de https, eso también significa que puede obtener cualquier cosa en lugar del contenido. Espero que el autor lo arregle en algún momento. –
Acabo de comenzar a hacer SICP esta semana.
Actualmente, el esquema MIT está dividido 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 que figura arriba 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 se instala, puede usar Idioma | Elegir idioma ... elemento de menú para seleccionar SICP.
CHICKEN Scheme tiene un sicp library que proporciona compatibilidad con SICP. Puede instalarlo ejecutando chicken-install sicp
y escribiendo esto al comienzo de su código fuente: (use sicp)
.
Esto fue sorprendentemente molesto para hacer en macOS. Así es como funciona a partir de hoy, suponiendo que tiene Homebrew. (Puede que desee ejecutar brew update
de vez en cuando).
brew cask install racket
raco setup # might be optional
raco pkg install sicp
Ahora puede (require sicp)
o simplemente correr
racket -l sicp --repl
las que se necesita para abreviar a scheme
.En bash que estaría
alias scheme='racket -l sicp --repl'
que se puede añadir a su ~/.bashrc
Ahora estoy trabajando a través SICP usando Chez Scheme. Es un dialecto muy antiguo de Scheme, así que presumiblemente no está muy lejos de lo que se escribió en SICP.
Tenga en cuenta que la página del proyecto Chez Scheme vincula un binario de Windows y una fuente que se puede construir en plataformas tipo Unix. Pero si estás en un Mac, es probable que desee hacer
brew chezscheme
man chez
Asumiendo que tiene homebrew, que realmente debería.
¿Por qué no MIT Scheme? Porque la interfaz interactiva es Edwin, un editor que usa las convenciones de EMACS. (Actualmente, es un modo EMACS real, aunque solía implementarse en Scheme.) Solía conocer EMACS básico, pero mis habilidades se atrofiaron por falta de uso, 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 intentado. En cambio, traté de seguir las instrucciones oficiales para scheme y sicp, que están seriamente desactualizadas. Luego traté de hacer que el IDE entrara en el modo esquema, que parece ser intuitivo pero no lo es.
Simplemente demasiado problema. Y no estoy seguro de querer entrar en un IDE de diseño de lenguaje elegante, especialmente uno cuyo poco apoyo de Scheme provocó la pregunta original.
- 1. ¿Cuál es la implementación canónica del descuento?
- 2. ¿Cuál es la mejor biblioteca del navegador del lado del cliente para cargar múltiples archivos a través de http?
- 3. Esquema DTD o XML. ¿Cuál es mejor?
- 4. Cuál es la mejor estrategia de implementación para ASP.NET
- 5. ¿Qué idioma utilizarías para el autoaprendizaje del SICP?
- 6. ¿Cuál es la mejor y más completa implementación de los comandos del sistema Unix para Windows?
- 7. Quiero implementar un intérprete de esquema para estudiar SICP
- 8. Cuál es la mejor implementación de MPI
- 9. cuál es la mejor API del cliente HBase para java
- 10. ¿Cuál es la mejor implementación para AOP en .Net?
- 11. Java - ¿Cuál es la mejor estructura de implementación para Graph?
- 12. ¿Cuál es la importancia del esquema en el servidor sql?
- 13. ¿Cuál es el mejor esquema de SQL para este proyecto?
- 14. ¿Cuál es la implementación de dict mejor ordenada en python?
- 15. ¿Cuál es el mejor lisp/esquema para unix scripting?
- 16. Gestión del estado - capítulo 3 de SICP
- 17. Implementación de pager a través del servicio WCF
- 18. ¿Cuál es la forma correcta de emular la conexión TCP a través del proxy HTTP (s)?
- 19. Persistencia del objeto Delphi, ¿cuál es la mejor manera?
- 20. ¿Cuál es el equivalente del esquema de desempaquetado de tuplas?
- 21. ¿Cuál es la mejor estrategia de implementación de Drupal?
- 22. Proyectos del sitio web vs Aplicación web: ¿cuál es mejor?
- 23. ¿Cuál es la mejor manera de trabajar con el encabezado Expires en ASP.NET MVC?
- 24. ¿Cuál es la mejor arquitectura para unir a XMPP?
- 25. C#: Buena/mejor implementación del método Swap
- 26. ¿Estrategias para hacer frente a la evolución del esquema?
- 27. ¿Cuál es la explicación para el ejercicio 1.6 en el SICP?
- 28. Acceso a la solución de navegación TomTom a través del esquema de URL
- 29. ¿Cuál es el mejor enfoque para deshabilitar un botón de envío (del lado del cliente)?
- 30. ¿Cuál es el mejor método para forzar la caducidad del caché en ASP.NET?
Pero el esquema MIT no parece tener una compilación para linux x86_64 – f4hy
Lo que no me gustó de MIT Scheme fue que no pude entender cómo simplemente ejecutar un guión de esquema desde la línea de comandos y tener su salida que se muestra en mi consola, de la misma manera que esperaría ejecutar un script de Python o Ruby. ¿Estaba siendo extremadamente denso? ¿Cómo se logra esto, sin lanzar el gran entorno interactivo basado en Emacs y luego tener que abandonarlo nuevamente cada vez? –
hay una versión de 64 bits preconstruida de mit-scheme aquí - [http://www-users.cselabs.umn.edu/classes/Fall-2010/csci1901/mit-scheme-x64_9.0.1-1_amd64.deb] – tutysara