¿Cuál es la mejor implementación de Scheme o LISP para OS X?


86

Estoy buscando una versión de Scheme o incluso LISP que pueda usar para recuperar algunas habilidades de desarrollo de Lisp perdidas. Algunas capacidades web serían buenas pero no esenciales.

He examinado el esquema Plt y MIT y, aunque ambos se ven bastante bien, el Plt parece tener más funciones. También he analizado las implementaciones de Lisp, pero todas parecen bastante caras.

Yo prefiero las implementaciones gratuitas / económicas, ya que es probable que se trate de una programación de pasatiempos ocasional. ¿Qué recomendaciones tendrías?


6
Tenga en cuenta que PLT Scheme cambió de nombre a Racket.
soegaard

pregunta fuertemente relacionada: stackoverflow.com/questions/2485859
pnkfelix

2
¿Por qué esta pregunta no se ha cerrado y casi todas las demás como esta sí?
Erik Kaplun

Respuestas:


71

Yo iría con Racket. Puede que no sea tan rápido como SBCL, pero tiene excelentes bibliotecas y documentación, así como un entorno integrado que está diseñado para que pueda desarrollar y ejecutar programas Scheme desde el principio. Lo que realmente me gusta del IDE de Racket, DrRacket, es lo que no tienes que hacer: no tienes que aprender Emacs, no tienes que aprender SLIME, no tienes que preocuparte por cazar terceros. bibliotecas party, ya que prácticamente todas las bibliotecas destinadas a Racket se pueden encontrar en paquetes . Con todo, realmente reduce la curva de aprendizaje y le permite concentrarse en la tarea real: escribir un código excelente.

Además, viene con un servidor web si desea crear sitios web con tecnología Racket (que estoy investigando actualmente).


1
Elegí PLT más o menos al azar hace unas semanas, y hasta ahora estoy muy satisfecho con mi elección. Como ha dicho, muchas bibliotecas y documentación, algunas herramientas útiles.
Slartibartfast

Gracias, um, a nadie. Estoy más centrado en las herramientas y la documentación que en la velocidad, así que voy con PLT.
Mark Brittingham

1
Cosa segura. DrScheme se crea pensando en la educación, lo que tiene algunas ventajas (fácil de usar y documentado) pero también tiene algunas desventajas; a menos que esté pasando por HtDP ( htdp.org ), es mejor ignorar los idiomas de enseñanza y usar el Módulo para todo.
Kyle Cronin

Además de que ahora se llama Racket, ahora hay un nuevo sistema de paquetes y un catálogo de paquetes que ahora se prefiere a Planet para la mayoría de los casos de uso.
Jack

22

Experimenté bastante con esto.

Clozure Common Lisp (de soltera Open MCL) es, con mucho, el más rápido; 25-30 por ciento más rápido que el próximo competidor en mi Intel Mac Mini.

MIT Scheme funciona bastante bien en una Mac. Creo que finalmente lo compilé yo mismo, pero hay binarios en ese sitio. PLT Scheme también es bueno, y posiblemente un poco mejor integrado en el mundo Mac. (PLT Scheme ahora se conoce como Racket , pero no he experimentado con él después del cambio).


2
prácticamente todo con lo que lo probé; en general, han sido una gran manipulación de listas y un gran uso de la loopmacro.
Charlie Martin

1
Es posible que desee tener en cuenta que CCL no parece ejecutarse en Intel de 32 bits, por lo que mi Mac Mini es un poco viejo para él.
David Thornley

16

Soy un gran fan de Clojure, SBCL y Clozure CL. Todos son fantásticos, pero también son exagerados si todo lo que quieres hacer es actualizar tus habilidades de Lisping. Todos requieren cantidades absurdas de búsqueda de información, búsqueda de listas de correo, instalación de paquetes, irc al acecho, etc.

Dr Scheme simplemente se instala y ejecuta. Terminé los primeros 3 capítulos del SICP hace cuatro años y medio usando el Dr. Scheme. Nada era más profundo que definir un evaluador de Scheme en sí mismo. Una vez que entienda eso, tendrá mucha más paciencia con los hermanos de fuerza industrial.


3
En realidad, no necesitaba nada más para mi configuración de Ubuntu-SBCL-SLIME-stumpwm. Para empezar, Practical Common Lisp y CLHS es todo lo que necesita, y eso le lleva muy lejos.
Svante

15

Para Scheme, DrRacket es increíble (incluido en Racket ).

Para Common Lisp, Ready Lisp es genial. Un solo daño con SBCL, Aquamacs y Slime funcionando fuera de la caja.

Desde el sitio web:

Ready Lisp es un enlace de varios paquetes comunes de Common Lisp especialmente para Mac OS X, que incluyen: Aquamacs, SBCL y SLIME. Una vez descargado, tendrá un solo paquete de aplicaciones en el que puede hacer doble clic y se encontrará en un Common Lisp REPL completamente configurado.

Es ideal para usuarios de OS X que desean probar la belleza de Common Lisp con un mínimo de molestias. Los profesores también podrían utilizarlo para darles a sus alumnos de Mac un entorno Common Lisp completo y gratuito para que se lo lleven a casa. Requisitos

La versión actual de Ready Lisp es 20090127 y requiere Mac OS X 10.5 (Leopard).

Incluye las siguientes versiones de software de componentes:

Aquamacs  1.6
SBCL    1.0.24
SLIME   2009-01-23
CL-FAD  0.6.2
CL-PPCRE    2.0.1
LOCAL-TIME  0.9.3
SERIES  2.2.10
CL HyperSpec    7.0
paredit.el  20
redshank.el     1
cldoc.el    1.16


5

Dependiendo de cómo defina "Lisp", Clojure puede ajustarse a sus necesidades. Se ejecuta bien en OS X (se ejecuta en cualquier lugar donde se ejecute la JVM). Tiene capacidades web y es gratis.

También tiene la ventaja de ser nuevo, fresco y divertido de usar. Podría ser ideal para la programación de pasatiempos. Es fácil escribir aplicaciones web o aplicaciones GUI (usando Java's Swing o incluso Qt).


4

No lo he usado yo mismo, pero Steel Bank Common Lisp ha recibido algunos comentarios favorables en reddit. Es de código abierto y gratuito, por lo que el precio es adecuado para algunos programas de afición.

En el pasado, tenía GNU Common Lisp ejecutándose en mi macbook pro.


4

Si está buscando Scheme, puede echar un vistazo a JazzScheme recién lanzado .


4

Recomiendo Racket a los recién llegados, ya que proporciona uno de los mejores IDE para principiantes de Scheme (o más bien, principiantes de programación que están usando Scheme, o mejor aún, trabajando a través de HtDP).

http://racket-lang.org/

Otra opción, para las personas que están más interesadas en un pequeño sistema Scheme para modificarlo ellos mismos o leer su código fuente, es Larceny Scheme, que es de interés en gran parte porque su compilador JIT, Twobit, está implementado completamente en Scheme.

http://www.larcenists.org/


Actualización: Además, Chez Scheme ha sido recientemente de código abierto:

https://github.com/cisco/ChezScheme

(Puede que no sea tan "pequeño" como Larceny, pero tiene un compilador de optimización muy agresivo).


en el sitio web, solo parecen mencionar un compilador nativo, un compilador de C y una implementación de CLR. ¿Dónde está el JIT?
Erik Kaplun

El compilador nativo es un JIT.
pnkfelix

(es decir, compila dinámicamente cada expresión de Scheme que ingresa a través de 'load' o el REPL en el código de máquina x86. JIT aquí es para "justo a tiempo"; no está relacionado con Java y la JVM, en caso de que sea lo que pensé que quise decir por JIT)
pnkfelix

No creo que tenga nada que ver con Java; es solo que la página de inicio dice "compila directamente en código de máquina nativo" , y no es así como se describen generalmente las VM / intérpretes de compilación JIT.
Erik Kaplun

1
Para responder a su pregunta, realmente no puede obtener un binario independiente de Larceny tal como está ahora. Puede cargar su fuente de Scheme y luego serializar su montón (con código compilado) en una imagen de montón, pero aún así tendrá que redistribuir el archivo de montón y el binario de tiempo de ejecución como archivos separados. He considerado intentar que sea más fácil fusionar los dos en una sola imagen binaria, pero nunca di el paso.
pnkfelix


2

Si solo es un aficionado a la programación, LispWorks tiene una versión personal gratuita que es bastante potente y sofisticada. Su mayor problema es un límite de tiempo de ejecución de varias horas. Por lo tanto, no escribirás servidores de larga duración en él, pero eso no significa que no sea una herramienta útil.

CLISP se ejecuta en casi todo, y en realidad es bastante bueno, simplemente no hace subprocesos. (Importante si desea escribir un servidor real, pero como PHP y Perl nos han mostrado, Apache + [insertar lenguaje] es una plataforma muy viable).



1

Últimamente me he estado haciendo la misma pregunta. Habiendo usado DrScheme en OS X, sería mi primera opción de distribución de Scheme para cualquier plataforma. Muy buen IDE, funciones de depuración y un buen conjunto de bibliotecas / marcos (incluido un conjunto de herramientas GUI muy agradable que 'simplemente funciona ... incluso en Mac' ;-))

Sin embargo, ahora estoy buscando un entorno igualmente cómodo para Common Lisp. Todo se redujo a CCL (OpenMCL) versus SBCL. SBCL parece ser la opción popular, pero leí que en OS X no es compatible con subprocesos. (¿Es esto realmente un problema?). Clozure CL, por otro lado, cuenta con un buen soporte para subprocesos nativos, obcj-bridge, etc.

CCL me parece un poco extraño, pero me quedaré con él por un tiempo. Todavía parece la opción lógica para la integración.

Yo uso Emacs 23 (construido a partir de código fuente usando --with-ns) y Slime como entorno y esto funciona bien para mí. :-)


1

Descubrí que Chicken funciona bien para Scheme y está disponible a través de homebrew.

brew install chicken

La mayor parte del código de SICP funciona con modificaciones menores.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.