web-dev-qa-db-fra.com

Quel dialecte de LISP dois-je apprendre?

Je sais qu'il existe différents dialectes du LISP. Ayant décidé que l'apprentissage du LISP serait une nouvelle expérience intellectuelle, je voudrais savoir quel dialecte LISP apprendre et pourquoi.

Y en a-t-il un qui est plus populaire que les autres? L'un d'eux est-il plus "complet", comme dans, mieux documenté et pris en charge? Quels sont les avantages et les inconvénients de ce dialecte?

83
Humphrey Bogart

Je dirais Scheme, uniquement à cause du Little Schemer , qui est l'un des livres les plus incroyablement amusants mais extrêmement difficiles que j'ai jamais essayé de lire.

21
J. Polfer

Je peux recommander Common LISP sur SBCL . Cette combinaison est rapide, puissante, mature et bien documentée.

9
Leslie P. Polzer

Clojure gagne également beaucoup de réflexion ces jours-ci, et pour une bonne raison. Excellentes structures de données, prise en charge de la concurrence profondément bonne (fait honte à Scheme et CL à cet égard) et une grande communauté. C'est aussi relativement simple, CL est au moins aussi compliqué que C++.

Cela ne veut pas dire que je n'aime pas CL ou Scheme. J'ai appris Scheme avec SICP. Et CL m'a amené à Clojure. Tout dépend de vos objectifs, je suppose. Si vous voulez apprendre un LISP extrêmement pratique, optez pour Clojure. Sinon, CL ou Scheme sont tous les deux excellents.

8
dnolen

J'ai appris Scheme à l'école. Ce fut une excellente expérience d'apprentissage et je n'oublierai jamais les principes fondamentaux de la programmation fonctionnelle. Peu importe la version de LISP que vous choisissez, tant que vous comprenez le cœur de son utilité - le calcul lambda sans état.

Voici un article intéressant sur Pourquoi MIT passé de Scheme à Python dans son cours de programmation d'introduction.

5
jinsungy

Je préfère CL, car j'aime la programmation orientée objet, et CLOS est le plus beau système d'objets autour.

5
jrockway

Je dirais tous, au moins au début. Finalement, vous développerez probablement une préférence pour Scheme ou LISP commun, mais ils ont tous les deux suffisamment de différences pour mieux comprendre tout ce qui existe.

Scheme a des continuations par exemple, et il est bon d'en savoir plus sur celles de Scheme, même si elles peuvent être implémentées dans Common LISP.

Apprendre la différence entre la portée lexicale et dynamique est important, et si vous apprenez à la fois LISP commun et elisp, vous rencontrerez les implications des deux.

3
justinhj

C'était une sorte de question "chargée" pour commencer, mais OP ne le savait probablement pas. Généralement, les lispers Common et Scheme sont comme PC et Apple ordinateur "people", ils ne se mélangent pas. Lequel est le meilleur n'est probablement pas aussi pertinent que celui qui "fonctionne" pour vous. Vraiment , il n'y a pas beaucoup de différence. Probablement une préférence pour l'un sur l'autre peut être influencée par celle que vous apprenez en premier. (Pour moi, une liste vide devrait être "rien", connue en CL comme NIL, et cela fait de moi un commun Lisper.) J'aime l'intégration de SBCL avec Slime en utilisant EMACS, mais SBCL n'est pas pour tout le monde. D'une part, SBCL est très strict. Si vous voulez juste "vous amuser" le GNU clisp est facile et disponible pour pratiquement toutes les plateformes.

0
Wiley

LFE (LISP Flavored Erlang) serait sympa. Vous pouvez avoir la syntaxe LISP au-dessus de la machine virtuelle Erlang.

0
user235273