web-dev-qa-db-fra.com

Quel Lisp devrais-je apprendre?

Quel Lisp (dialecte) devrais-je apprendre et pourquoi?

La fragmentation entre CL et Scheme ralentit (au moins pour moi!).

Alors, donnez-moi la "vraie réponse", s'il vous plaît!

J'ai essayé de lire des comparaisons de caractéristiques et ils semblent se bouger dans Esoerica (que je ne comprends pas complètement) comme si le dialecte est complètement récursif de la queue, etc. Je vous espère que tout (collectivement) peut faire clairement les différences opaques.

Les choses que j'aime

Bon support de bibliothèque, bon environnement et support unicode.

Choses que je n'aime pas

Flammes. Caractéristiques utiles au début, mais interfère avec l'apprentissage à long terme.


Mises à jour

  1. J'utilise surtout Mzscheme, que j'apprécie très bien, une fois que je suis readline, supportez-vous. Je ne gère pas une interface graphique sur UNIX, alors cela semblait être une option d'environnement fine pour moi.

  2. Je suis également très heureux que Clojure soit facile à installer. C'est une grosse victoire. Malgré l'hostilité d'un peu facile à la colère ci-dessous, une barrière faible à l'entrée est une victoire. J'aime être cuillère.

  3. Après avoir lu beaucoup plus de [~ # ~ # ~] SICP [~ # ~] , je comprends les problèmes autour de la récursion de la queue beaucoup mieux.

69
Gregg Lind

Clojure est un dialecte moderne et activement développé de LISP. Il est basé sur la JVM, de sorte que tous les Java Bibliothèques sont immédiatement disponibles et disposent donc d'un support Unicode.

Ceci est une alternative, pas la seule vraie réponse.

62
Greg Hewgill

Si vous voulez éviter les flammes et que vous aimez les bibliothèques, allez avec le clojure. C'est petit, c'est rapide et la communauté est utile et non dogmatique. C'est Lisp moins l'absurde cruft des années 1980. Il a une BDFL et si vous avez une bonne idée, il y a de bonnes chances que cela soit mis en œuvre dans la langue.

J'ai joué avec des Lisp communs, c'est une belle chose. J'ai terminé les 3 premiers chapitres et l'évaluateur métacolirculeux dans SICP à Drscheme, et c'est une belle chose aussi. Bien sûr, vous allez grandement profiter de ces apprendre.

Mais, au fil du temps, je suis venu de garder de petites langues chérie à mon cœur. Je ne vais pas mentir, j'aime JavaScript et j'adore C (et Goddammit si chaque langue n'a pas de noyau C à son cœur) parce qu'ils sont petits.

Le clojure est petit. C'est élégant. C'est une langue pour notre époque.

31
dnolen

( Clojure est un excellent dialecte de LISP qui favorise la programmation fonctionnelle. Il fonctionne sur le JVM afin que vous ayez accès à tout Java Bibliothèques, vous pourriez être utilisé pour utiliser. Le site a une excellente documentation et Screencasts pour vous aider à apprendre. Un autre avantage Est-ce qu'il est vraiment facile à installer, contrairement à de nombreux autres dialectes.

Si vous cherchez simplement à groker les concepts (( emacs (EMACSLISP spécifiquement) est une autre alternative. Il est livré avec une documentation incroyable, des tutoriels et de nombreux échantillons de code. Les screencasts sont assez faciles à trouver également. L'un des grands avantages de EMACS est que l'éditeur est écrit dans Lisp afin que l'éditeur a naturellement un très bon soutien pour la course à pied, la modification et le débogage de LISP. De plus, vous pouvez étendre l'éditeur pour que votre édition de texte chaque jour a besoin de plus facilement tandis que Vous apprenez LISP.

19
Bryan Kyle

Enlevez-en un et apprenez-le. Au moment où vous trouverez les différences, vous serez en mesure de choisir à nouveau, si vous avez mal choisi la première fois.

18
Gregg Lind

Le plus gros problème de LISP est qu'il n'y a pas de standard primordial que tout le monde sonne à. Vous n'avez pas seulement besoin de choisir entre LISP et schéma commun; Vous devez choisir entre plusieurs implémentations incompatibles de LISP commun et plusieurs implémentations incompatibles de schéma, ainsi que d'autres petites choses comme l'arc et la gojure.

Je recommanderais de commencer par mzscheme . Il est populaire, il est activement développé, il possède de nombreuses bibliothèques offrant les caractéristiques d'un environnement de programmation moderne et est un peu plus simple (de ne pas mieux dire, tout simplement plus simple) que les LISP commun.

9
Chuck

Apprenez Elisp afin que vous puissiez prolonger EMACS.

7
mletterle

Aller avec le clojure. C'est une langue incroyable avec un accès complet à tout Java Library. Il a été en développement depuis un peu plus de 2 ans et a déjà 3 IDE Plugins dans le développement et un livre étant publié en avril à ce sujet. C'est très rapide, très élégant et magnifique. Vous ne pouvez pas vous tromper avec le clojure.

6
Rayne

Pour moi, la théorie fondamentale du schéma est beaucoup plus convaincante. Pltscheme est, de loin, le LISP le plus développé que j'ai trouvé. Malheureusement, il a une prolifération de taper qui obscurcit la beauté de Lisp.

J'aimerais voir quelque chose comme l'arc réussir, mais cela semble improbable.

5
Javier

Jetez un coup d'œil à Ironscheme .

4
Nemanja Trifunovic

Conjecture: Lors de l'apprentissage de votre premier LISP, n'en apprenez pas l'un que vous allez finir par le développement final.

Lemma: apprendre l'arc. Toutes les choses "difficiles à grok" dans Lisp - fermetures, macros, continuations, sans aucun des clojure Java complexité interop, confusion de noms de noms de cles de noms, ou fragmentation du nom du schéma. Si vous êtes dédié. Si vous êtes dédié. Si vous êtes dédié. , vous pouvez apprendre toutes ces choses en un week-end. Si vous êtes tranchant et dédié, dans une nuit.

Et cela fera d'apprendre tous les autres lisps a lot plus facile.

4
Andrey Fedorov

Je ne sais pas Lisp mais Heres Pourquoi je pense que PLT Scheme est un bon choix:

  1. Vraiment bons documentaires
    [.____] http://download.plt-scheme.org/doc/html/

  2. Drscheme
    Drscheme est un environnement de programmation incroyable fourni avec un compilateur, un stepper, des dames de syntaxe, une réplique, une myriade de prise en charge des langues et est extensible. Cela rend l'expérience entière amusante. Voir certains Captures d'écran

  3. Bon soutien de la communauté.
    [.____] La communauté est très enthousiaste à propos de leur langue et de leur soutien très favorable. Si vous avez des questions, des listes de diffusion, des groupes et des forums sont disponibles. Même les auteurs sont très très accessibles.

  4. Recherche continue
    PLT est très actif et continuez à mieux rendre leur outil et mieux. Vous pouvez vous attendre à beaucoup d'innovations des laboratoires. par exemple. Je suis assez excité de l'utilisation de ce: http://blog.plt-scheme.org/2009/05/ttyped-scheme-20.html

  5. Livres gratuits et tutoriels intéressants pour vous aider à démarrer.
    [.____] http://www.htdp.org/
    [.____] http://world.cs.brown.edu/

  6. Bons modules et bibliothèques étendues.
    [.____] http://www.cs.utah.edu/plt/develop/
    [.____] http://planet.plt-scheme.org/ Voir Docs

Si vous apprenez un schéma, donnez Drscheme un essai.

4
unj2

Je pense que vous voulez soit un schéma LISP ou PLT commun.

Le premier vient avec beaucoup de liberté et de pouvoir (cela pourrait vous submerger au début) et ce dernier est livré avec un groupe de bibliothèques, des tutoriels assortis et une IDE bien intégrée.

1
Leslie P. Polzer

Choisissez quelque chose que ce soit de clojure, allez-y, et vous serez une meilleure position pour évaluer plus tard.

Vous avez formulé cette question comme la LISP est le meilleur moyen de l'apprentissage du LISP, qui doit inclure une LISP qui est construite à partir de primitives de faible niveau, tandis que de grandes parties de la robonure sont écrites en Java.

Si vous aviez formulé cette question, ce qui est le meilleur LISP pour démarrer un nouveau projet, le clojure peut être le meilleur choix.

1
Kevin Peterson

Il y a très peu de vrais choix là-bas, SBCL, Clojure ou Pltscheme.

0
Marko

Je suis un fan de stratagème, mais cela fait plus de 10 ans que je faisais quelque chose avec le régime.

comme les autres l'ont dit - en choisissez simplement une et allez.

0
Tim