Quelle est la meilleure implémentation Scheme ou LISP pour OS X?


86

Je recherche une version de Scheme ou même de LISP que je peux utiliser pour récupérer certaines compétences de développement Lisp perdues. Certaines fonctionnalités Web seraient intéressantes mais pas essentielles.

J'ai examiné les schémas Plt et MIT et, bien que les deux aient l'air plutôt bons, le Plt semble être plus riche en fonctionnalités. J'ai également regardé les implémentations Lisp mais toutes semblent assez chères.

Je préfère les implémentations gratuites / peu coûteuses car il ne s'agit vraiment que de programmes occasionnels de loisirs. Quelles recommandations auriez-vous?


6
Notez que PLT Scheme a changé de nom en Racket.
soegaard

question fortement liée: stackoverflow.com/questions/2485859
pnkfelix

2
Pourquoi cette question n'a pas été fermée et presque toutes les autres comme celle-ci?
Erik Kaplun

Réponses:


71

J'irais avec Racket. Ce n'est peut-être pas aussi rapide que SBCL, mais il possède d'excellentes bibliothèques et documentation, ainsi qu'un environnement intégré conçu pour vous permettre de développer et d'exécuter des programmes Scheme dès la sortie de la porte. Ce que j'aime vraiment dans l'IDE de Racket, DrRacket, c'est ce que vous n'avez pas à faire - vous n'avez pas besoin d'apprendre Emacs, vous n'avez pas à apprendre SLIME, vous n'avez pas à vous soucier de traquer le troisième. bibliothèques de partie, car pratiquement toutes les bibliothèques destinées à Racket se trouvent dans des packages . Dans l'ensemble, cela réduit vraiment la courbe d'apprentissage et vous permet de vous concentrer sur la tâche réelle à accomplir: écrire du bon code.

En outre, il est livré avec un serveur Web si vous souhaitez créer des sites Web alimentés par Racket (que je recherche actuellement).


1
J'ai choisi PLT plus ou moins au hasard il y a quelques semaines, et jusqu'à présent, je suis très satisfait de mon choix. Comme vous l'avez dit, beaucoup de bibliothèques et de documentation, des outils utiles.
Slartibartfast le

Merci, hum, personne. Je suis plus axé sur les outils et la documentation que sur la vitesse, donc j'utilise PLT.
Mark Brittingham le

1
Chose sûre. DrScheme est créé avec l'éducation à l'esprit, qui présente certains avantages (simples à utiliser et documentés), mais aussi certains inconvénients; à moins que vous ne passiez par HtDP ( htdp.org ), il est préférable d'ignorer les langues d'enseignement et d'utiliser Module pour tout.
Kyle Cronin le

En plus de s'appeler désormais Racket, il existe désormais un nouveau système de packages et un nouveau catalogue de packages qui sont désormais préférés à Planet pour la plupart des cas d'utilisation.
Jack

22

J'ai fait pas mal d'expérimentation avec cela.

Clozure Common Lisp (née Open MCL) est de loin le plus rapide; 25 à 30% plus rapide que le prochain concurrent sur mon intel Mac Mini.

MIT Scheme fonctionne très bien sur un Mac. Je pense que je l'ai finalement compilé moi-même, mais il y a des binaires sur ce site. PLT Scheme est également agréable, et peut-être un peu mieux intégré dans le monde Mac. (PLT Scheme est maintenant connu sous le nom de Racket , mais je ne l'ai pas expérimenté après le changement.)


2
à peu près tout ce que j'ai essayé avec; il s'agit généralement de manipulations de listes lourdes et d'une utilisation intensive de la loopmacro.
Charlie Martin

1
Je voudrais peut-être noter que CCL ne semble pas fonctionner sur Intel 32 bits, donc mon Mac Mini est un peu vieux pour cela.
David Thornley

16

Je suis un grand fan de Clojure, SBCL et Clozure CL. Ils sont tous fantastiques, mais ils sont aussi exagérés si tout ce que vous voulez faire est de rafraîchir vos côtelettes Lisping. Ils nécessitent tous des quantités absurdes de recherche d'informations, de recherche de liste de diffusion, d'installation de paquets, de recherche d'irc, etc.

Dr Scheme s'installe et s'exécute simplement. J'ai terminé les 3 premiers chapitres du SICP il y a quatre ans et demi avec le Dr Scheme. Rien n'était plus profond que de définir un évaluateur de programme en soi. Une fois que vous aurez compris que vous aurez beaucoup plus de patience pour les frères de force industrielle.


3
En fait, je n'avais besoin de rien d'autre pour ma configuration Ubuntu-SBCL-SLIME-stumpwm. Pour commencer, Practical Common Lisp et le CLHS sont tout ce dont vous avez besoin, et cela vous amène un long chemin.
Svante

15

Pour Scheme, DrRacket est génial (inclus dans Racket ).

Pour Common Lisp, Ready Lisp est génial. Un seul dmg avec SBCL, Aquamacs et Slime prêt à l'emploi.

Depuis le site Web:

Ready Lisp est une liaison de plusieurs packages Common Lisp populaires spécialement pour Mac OS X, notamment: Aquamacs, SBCL et SLIME. Une fois téléchargé, vous aurez un seul ensemble d'applications sur lequel vous pouvez double-cliquer - et vous retrouverez dans un REPL Common Lisp entièrement configuré.

Il est idéal pour les utilisateurs d'OS X qui souhaitent essayer la beauté de Common Lisp avec un minimum de tracas. Il pourrait également être utilisé par les enseignants pour offrir à leurs étudiants Mac un environnement Common Lisp gratuit et complet à emporter chez eux. Exigences

La version actuelle de Ready Lisp est 20090127 et nécessite Mac OS X 10.5 (Leopard).

Il comprend les versions logicielles des composants suivantes:

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

Selon la façon dont vous définissez "Lisp", Clojure peut convenir. Il fonctionne bien sur OS X (il s'exécute partout où la JVM s'exécute). Il a des capacités Web et c'est gratuit.

Il a également l'avantage d'être nouveau, frais et amusant à utiliser. Peut-être idéal pour la programmation amateur. Il est facile d'écrire des applications Web ou des applications GUI (à l'aide de Java Swing ou même de Qt).


4

Je ne l'ai pas utilisé moi-même, mais Steel Bank Common Lisp a reçu un buzz favorable sur reddit. C'est open source et gratuit, donc le prix est juste pour une programmation de loisir.

Dans le passé, j'ai utilisé GNU Common Lisp sur mon macbook pro.


4

Si vous recherchez Scheme, vous pouvez jeter un œil à JazzScheme qui vient de sortir .


4

Je recommande Racket aux nouveaux arrivants, car il fournit l'un des meilleurs IDE pour les débutants en Scheme (ou plutôt pour les débutants en programmation qui utilisent Scheme, ou mieux encore, se frayent un chemin à travers HtDP).

http://racket-lang.org/

Une autre option, pour les personnes qui sont plus intéressées par un petit système Scheme afin de le modifier eux-mêmes ou de lire son code source, est Larceny Scheme, qui présente un intérêt en grande partie parce que son compilateur JIT, Twobit, est lui-même implémenté entièrement dans Scheme.

http://www.larcenists.org/


Mise à jour: De plus, Chez Scheme a récemment été open source:

https://github.com/cisco/ChezScheme

(Il n'est peut-être pas aussi "petit" que Larceny, mais il a un compilateur d'optimisation très agressif.)


sur le site Web, ils semblent seulement mentionner un compilateur natif, un compilateur to-C et une implémentation CLR - où est le JIT?
Erik Kaplun

Le compilateur natif est un JIT.
pnkfelix

(c'est-à-dire qu'il compile dynamiquement chaque expression Scheme que vous alimentez via 'load' ou le REPL dans le code machine x86. JIT ici est pour "juste à temps"; il n'est pas lié à Java et à la JVM, au cas où c'est ce que vous pensais que je voulais dire par JIT)
pnkfelix

Je ne pensais pas que cela avait quoi que ce soit à voir avec Java; c'est juste que la page d'accueil dit "compile directement en code machine natif" , et ce n'est pas ainsi que les VM / interpréteurs de compilation JIT sont généralement décrits.
Erik Kaplun

1
Pour répondre à votre question, vous ne pouvez pas vraiment obtenir un binaire autonome de Larceny tel qu'il se présente actuellement. Vous pouvez charger votre source Scheme, puis sérialiser son tas (avec le code compilé) en une image de tas, mais même dans ce cas, vous devrez toujours redistribuer le fichier de tas et le binaire d'exécution en tant que fichiers séparés. J'ai envisagé d'essayer de faciliter la fusion des deux en une seule image binaire, mais je n'ai jamais franchi le pas.
pnkfelix


2

Si vous n'êtes que de la programmation amateur, LispWorks a une version gratuite et personnelle qui est assez puissante et sophistiquée. Le plus gros problème est une limite de temps d'exécution de plusieurs heures. Ainsi, vous n'écrirez pas de serveurs de longue durée, mais cela ne signifie pas que ce n'est pas un outil utile.

CLISP fonctionne sur presque tout, et est assez agréable en fait, il ne fait simplement pas de threads. (Important si vous voulez écrire un serveur réel, mais comme PHP et Perl nous l'ont montré, Apache + [insérer le langage] est une plate-forme très viable.)



1

Je me suis posé la même question ces derniers temps. Après avoir utilisé DrScheme sur OS X, ce serait mon premier choix de distribution Scheme pour n'importe quelle plate-forme. Très bel IDE, fonctionnalités de débogage et un bon ensemble de bibliothèques / frameworks (y compris une très belle boîte à outils GUI qui `` fonctionne juste ... même sur Mac '' ;-))

Cependant, je recherche maintenant un environnement tout aussi confortable pour Common Lisp. Cela se résumait à CCL (OpenMCL) par rapport à SBCL. SBCL semble être le choix populaire, mais j'ai lu que sur OS X, il ne prend pas en charge le threading. (Est-ce vraiment un problème?). Clozure CL, d'autre part, bénéficie d'un bon support pour les threads natifs, le pont obcj, etc.

Je trouve CCL un peu étrange mais je vais m'y tenir pendant un moment - Cela semble toujours être le choix logique pour l'intégration.

J'utilise Emacs 23 (construit à partir des sources en utilisant --with-ns) et Slime comme environnement et cela fonctionne bien pour moi. :-)


1

J'ai trouvé que Chicken fonctionne bien pour Scheme et est disponible via homebrew.

brew install chicken

La plupart du code de SICP fonctionne avec des modifications mineures.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.