Quelle est la meilleure façon d'apprendre LISP? [fermé]


167

Je programme en Python, PHP, Java et C depuis quelques années maintenant, et je viens de terminer de lire Hackers and Painters, alors j'aimerais essayer LISP!

Je comprends que c'est totalement différent de ce que je sais et que ce ne sera pas facile. De plus, je pense (corrigez-moi si je me trompe) qu'il y a beaucoup moins de communauté et de développement autour de LISP. Ma question est donc: quelle est la meilleure façon d'apprendre LISP?

Cela ne me dérangerait pas d'acheter des livres ou d'investir du temps. Je ne veux tout simplement pas que ce soit gaspillé.

L'idée "finale" serait d'utiliser LISP pour le développement Web, et je sais que ce n'est pas si courant donc ... Je sais qu'il est bon de planifier mon apprentissage avant de choisir le premier livre ou le premier tutoriel et de passer beaucoup de temps sur quelque chose qui peut ne pas être le meilleur moyen!

Merci à tous pour vos réponses!

edit: J'ai lu Practical Common Lisp et j'étais: ... long, dur, intéressant et m'a définitivement fait rouler en Lisp, après cela j'ai lu le petit intrigant, et c'était court, amusant et très très bon pour ma programmation globale. Donc, ma recommandation serait de lire d'abord le petit intrigant, puis (c'est quelques heures et ça vaut le coup) si vous décidez que le lisp (ou le schéma ou tout autre dialecte) n'est pas ce que vous cherchiez, vous aurez toujours un très amusant nouvelle façon de penser la récursivité!


Common Lisp: une approche interactive . Vieux livre (1992) de Stuart Shapiro. Utilisé pour être arbre mort seulement, mais ces dernières années disponible sous forme électronique .
Kaz

Common LISPCraft par Robert Wilensky est un livre intéressant, bien que vieux. J'ai une copie papier, datée de 1986.
Kaz

Réponses:


114

Essayez de lire Practical Common Lisp , de Peter Seibel.


2
Je pense que j'ai vu ce livre sur mon campus ... si mal aller le chercher maintenant!
DFectuoso

2
N'oubliez pas le REPL! Je n'ai pas utilisé ce que j'ai appris sur LISP, mais cela a fait de moi un bien meilleur programmeur dans toutes les autres langues.
Robert K

1
Je le recommande vivement, c'est le livre que nous avons utilisé pour mon cours d'IA pour nous apprendre LISP pour nos projets.
helloandre

6
DFectuoso - il est non seulement un lien au sujet du livre, il est le livre. Commencez à lire le livre en ligne
Aaron

2
Oui, je sais mais je n'aime pas lire sur le moniteur ... de toute façon, j'ai choisi cela pour être la réponse car j'ai commencé à lire le livre et c'est bien (j'en ai plus de la moitié et je lis mal le petit intrigant, je le modifierai quand Je termine les deux = 0)
DFectuoso

76

Mon préféré est Abelson & Sussman Structure et interprétation des programmes informatiques . Il utilise Scheme, qui est un dialecte agréable et propre de Lisp.

Si vous aimez une approche plus pratique, vous devriez peut-être choisir un cadre Lisp pour la conception Web (je n'ai aucune idée si une telle bête existe) et vous lancer directement.


1
Paul Graham a un framework web lisp appelé arc.
graywh

15
Je crois que Arc est son propre dialecte de Lisp, pas seulement un framework. paulgraham.com/arc.html
michiakig

55

Vous voudrez peut-être commencer par The Little Schemer comme échauffement. Ce n'est pas un livre pratique sur l'écriture de programmes de production Lisp, mais c'est un excellent livre pour apprendre à penser en Lisp.


Cela semble être une bonne lecture rapide pour commencer! TY
DFectuoso

5
J'aurais tendance à ne pas être d'accord. Oui, y plonger est peut-être le moyen le plus rapide d'apprendre Lisp, mais c'est aussi le plus susceptible de détourner les gens. PCL a l'avantage que les programmes expérimentés peuvent commencer à utiliser Lisp à partir du premier jour, au lieu d'être simplement mesmorisés
Aaron

43

Le MIT a mis à disposition un cours complet de LISP au format DIVX et MPEG. Je le recommande fortement.

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/


3
Les cours sont basés sur leur manuel, Structure et interprétation des programmes informatiques.
graywh

7
J'ai trouvé que les vidéos DivX étaient de qualité similaire aux vidéos MPEG, même si elles sont beaucoup plus petites. Économisez de la bande passante et de l'espace disque.
Drew Noakes

2
Pour encore plus d'économies d'espace disque, accédez au lien et recherchez «structure et interprétation» (en utilisant les guillemets).
Bill Evans à Mariposa

Je parcours les vidéos SICP. Quel dialecte utilisent-ils? Ils ne font aucune mention de dialecte, ils l'appellent simplement `` LISP '' ...
Prière

2
@priestc Je sais que cette question a été posée il y a 4 ans, mais juste pour que ce soit clair. Ils utilisent "Scheme".
dptd

33

Il existe maintenant un livre intitulé «Land of LISP» qui enseigne la programmation LISP à travers l'écriture de jeux de texte de style années 80. Je le lis maintenant, il est très bien écrit et ne se prend pas trop au sérieux, ce que j'aime bien.


23

Il y a plusieurs options ici. Tout d'abord, Scheme et Common Lisp sont assez différents de manière assez profonde (comme la portée); vous devriez en choisir un pour commencer et vous y tenir pendant un moment . Je suis un fan de Common Lisp, mais c'est peut-être l'une de ces questions religieuses vi-vs-EMACS.

Pour Scheme, optez pour Scheme Programming Language de Kent Dybvig , suivi de SICP.

Pour Common Lisp, ainsi que Practical Common Lisp, je recommanderais Successful Lisp de David Lamkins . Successful Lisp est également disponible en ligne gratuitement .

Ensuite, regardez Lisp dans Small Pieces de Queinnec et Lisp de Norvig dans le livre AI .

Marty Hall a une belle liste chez Johns Hopkins.

Mise à jour : je ne veux pas dire s'y tenir pour toujours, juste qu'essayer d'apprendre les deux à la fois serait déroutant.


19

Procurez-vous The Land of Lisp de Conrad Barski. C'est une introduction amusante à la programmation Lisp à l'aide de dessins animés et de jeux.


17

Je recommanderais Project Euler comme une excellente source de petits problèmes que vous pouvez utiliser pour vous apprendre tout nouveau langage de programmation.


1
Je suis déjà un bon participant du projet Euler, donc oui, le temps que j'y passerai sera à pratiquer LISP (une fois que j'apprendrai à faire quelques trucs)
DFectuoso

9

Ansi Common Lisp de Paul Graham est un bon livre.

Je pense qu'il pourrait être épuisé, donc votre meilleur pari pour l'obtenir via Amazon. J'ai eu le livre pour un cours de "traitement du langage naturel". J'ai pris ma deuxième année à l'université. Nous devions écrire les projets de programmation en LISP, et j'avais donc besoin d'apprendre Lisp rapidement.

Le livre m'a beaucoup aidé.


8

Une fois, j'ai eu un problème. Je ne savais pas lisp. J'ai donc décidé de télécharger LISP dans une boîte.

Ensuite, je me suis retrouvé avec une installation Emacs sans aucune aide ni documentation.

Ensuite, j'ai eu deux problèmes.


2
Le problème ici est que quelqu'un ne vous a pas parlé du didacticiel; appuyez sur Ctrl-H, relâchez-les et appuyez sur T. Cela vous mènera à un didacticiel qui vous donnera tout ce dont vous avez besoin pour commencer. Désolé d'apprendre votre mauvaise expérience.
JasonFruit

7
+1 pour faire référence à l'ancienne blague regex, mais -1 pour ne pas être utile en plus. :-P
Michael H.

7

Pour les apprenants sérieux, je recommanderais PAIP de Norvig. C'est une excellente ressource pour apprendre à la fois Lisp et AI.


Je soutiens ceci, c'est un grand livre, bien écrit et IMO plus inspirant que Practical Common Lisp.
Johan Kotlinski

6

Berkeley propose CS61a au format podcast. Ceci est une introduction à la classe CS basée sur SICP. C'est une version plus moderne que les vidéos de 1982 disponibles sur le MIT.


6

Je travaille actuellement sur Lisp et je suis tombé sur "le livre" pour apprendre Lisp. Il a été suggéré par Rainer Joswig

Le livre s'appelle Common Lisp: A Gentle Introduction to Symbolic Computation et peut être téléchargé au format PDF. L'auteur commence par une approche UML de Lisp dans le premier chapitre et introduit progressivement de plus en plus de syntaxe Lisp.

J'ai également regardé le lisp pratique et je pense que l'auteur passe sous silence beaucoup d'informations requises, même pour un programmeur chevronné. Ce livre ne semble pas faire cela (je n'ai pas complètement terminé, mais je l'ai trouvé suffisamment utile pour le suggérer).

une dernière chose, vous aurez besoin d'un environnement pour travailler. J'ai trouvé que Lisp in a Box fonctionne bien. Il fonctionne sous Windows et Linux et utilise des eMacs.


5

Je suis attiré par LISP par son dialecte JVM - Clojure. Clojure est en quelque sorte un excellent LISP, car

  • il a une "syntaxe simplifiée", c'est-à-dire moins de parathensis sont nécessaires, il y a intelligemment un ensemble de collections disponibles
  • il est basé sur JVM, il y a donc un runtime stable et performant en dessous, en plus tout l'écosystème Java (bibliothèques, par exemple, pilotes de base de données, outils de construction, IDE) est à notre portée
  • Noir est un bon framework Web, les applications peuvent être déployées sur des serveurs Web et d'applications Java

En d'autres termes, Clojure peut être utilisé en production ici, maintenant.

En ce qui concerne les ressources, il existe au moins 4 livres et de nombreuses ressources en ligne:



4

Pour le développement Web, vous voudrez peut-être jeter un coup d'œil à hunchentoot , un serveur Web écrit en commun lisp.


Vous savez, c'est très triste de voir tous les serveurs Web et frameworks autour de lisp qui sont orientés Web ... ont un design ZERO (css ou même style en ligne
DFectuoso

4

J'ai trouvé que le fait de travailler sur les exercices de "The Little Schemer" m'a vraiment aidé à affiner le côté récursif et de correspondance de modèles de ma pensée et a rendu le travail en XSLT considérablement plus facile.


2

Je recommande d'abord une introduction douce au calcul symbolique ou un lisp commun pratique, en fonction de vos expériences de programmation. Pour pratiquer, j'utilise Allegro CL 8.2 Free Express Edition sous Windows. Cela transforme la pratique en beaucoup de plaisir.


1

Une sorte de question difficile à répondre ... Je pense que tout dépend de votre style d'apprentissage.

J'ai appris LISP dans mes cours d'IA et de systèmes experts à l'université, mais c'est comme ça que j'apprends ... Je ne suis pas un grand apprenant en livres, je préfère que quelqu'un me l'explique en classe.

LISP est définitivement un langage unique et il nécessite une nouvelle réflexion si vous êtes habitué à la programmation conventionnelle C, Java, PHP.

Bonne chance à vous !


1

J'ai trouvé que la lecture du livre SICP m'a vraiment aidé à apprendre. J'ai utilisé Steel Bank Common Lisp (SBCL) et j'ai eu beaucoup de succès avec.

Bonne chance


Merci Je vais choisir des livres aujourd'hui et commencer très tôt demain!
DFectuoso

Notez cependant que SBCL est pour Common LISP et que le livre traite de Scheme. Je ne l'ai pas encore lu complètement, mais je pense qu'il peut encore être d'une grande aide pour apprendre Common LISP. Il vous suffit de trouver les équivalents dans Common LISP.
Zelphir Kaltstahl


0

Je ne sais pas s'il y a quelque chose de spécial à propos de Lisp qui le rend différent de l'apprentissage d'une autre langue. Il vous suffit de commencer à l'utiliser et à essayer ses fonctionnalités.

Une option pourrait être d'essayer un projet simple .

Une autre option, spécifique à Lisp, serait d'écrire une extension Emacs qui vous assiste dans votre travail habituel.


0

Lisez ces livres dans l'ordre: Introduction douce au calcul symbolique, ANSI Common Lisp par Paul Graham, puis passez à Practical Common Lisp. Ou ignorez ACL et utilisez-la comme référence tout en travaillant sur PCL.

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.