web-dev-qa-db-fra.com

Quelle est la meilleure façon d'apprendre LISP?

Je programme en Python, PHP, Java et C depuis quelques années maintenant, et je viens tout juste 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. Aussi, 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 la suivante: quel est le meilleur moyen d’apprendre à utiliser LISP?

Je n’aimerais pas acheter des livres ou investir du temps. Je ne veux 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, alors ... je sais que c'est bien de planifier mon apprentissage avant de choisir le premier livre ou tutoriel et de passer beaucoup de temps sur quelque chose qui risque de ne pas l'être être le meilleur moyen!

Merci à tous pour vos réponses!

edit: J'ai lu Practical Common LISP et étais: ... long, dur, intéressant et m'a vraiment fait rouler dans LISP, après avoir lu le petit intrigant, c'était bref, amusant et très très amusant bon pour ma programmation globale. Donc, ma recommandation serait de lire d’abord le petit intrigant, puis (c’est quelques heures et cela en vaut la peine) si vous décidez que LISP (ou un schéma ou un dialecte quelconque) n’est pas ce que vous cherchez, vous aurez toujours un plaisir nouvelle façon de penser à la récursivité!

162
DFectuoso

Essayez de lire Practical Common LISP , de Peter Seibel.

111
Avi

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 du LISP.

Si vous préférez une approche plus pratique, vous devriez peut-être choisir un cadre LISP pour la conception Web (je ne sais pas si une telle bête existe) et passer immédiatement au crible.

75
starblue

Vous voudrez peut-être commencer par The Little Schemer en guise d'échauffement. Ce n'est pas un livre pratique sur la rédaction de programmes de production en LISP, mais c'est un excellent livre pour apprendre à penser dans LISP.

54
John D. Cook

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

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

42
user49978

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, et c'est très bien écrit et ne se prend pas trop au sérieux, ce que j'aime bien.

32
fbl

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 en tenir à pendant un moment. Je suis un fan de LISP commun, mais cela pourrait être une de ces questions religieuses vi-vs-EMACS.

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

Pour le LISP commun, ainsi que pour le pratique LISP commun pratique, je recommanderais David Lamkins - LISP réussi Le LISP réussi est également disponible en ligne gratuitement .

Après cela, regardez LISP en petites pièces de Queinnec, et de Norvig LISP dans le livre AI .

Marty Hall a ne belle liste chez Johns Hopkins.

Mis à jour : Je ne veux pas rester là pour toujours, juste qu'essayer d'apprendre les deux à la fois serait déroutant.

22
Charlie Martin

Prenez le Land of LISP de Conrad Barski. C'est une introduction amusante à la programmation LISP utilisant des dessins animés et des jeux.

19
Ashwin Nanjappa

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

17
JesperE

Ansi Common LISP de Paul Graham est un bon livre.

Je pense que cela pourrait être épuisé, alors 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 rédiger les projets de programmation dans LISP et je devais donc apprendre rapidement le LISP.

Le livre m'a beaucoup aidé.

9
Scott Wisniewski

Une fois j'ai eu un problème. Je ne connaissais 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 aide ni documentation.

Ensuite, j'ai eu deux problèmes.

8
adolfojp

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

7
amit

Berkeley offre CS61a en 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 MIT disponible).

6
Steve Rowe

Je suis en train de parcourir LISP en ce moment et je suis tombé sur "le livre" pour apprendre LISP. Il a été suggéré par Rainer Joswig

Le livre s'appelle Common LISP: Une introduction en douceur au calcul symbolique et peut être téléchargé au format PDF. L'auteur commence par une approche de type UML à LISP dans le premier chapitre et introduit progressivement de plus en plus de syntaxe LISP.

J'ai également examiné le LISP pratique et je pense que l'auteur passe sous silence beaucoup d'informations nécessaires, même pour un programmeur expérimenté. Ce livre ne semble pas faire cela (je ne suis pas complètement fini, mais je l’ai trouvé assez utile pour le suggérer).

une dernière chose, vous aurez besoin d’un environnement. J’ai trouvé LISP dans une boîte pour bien fonctionner. Il fonctionne sous Windows et Linux et utilise des eMacs.

6
BlueBadger

J'ai été attiré par LISP par son dialecte JVM - Clojure. Clojure est en quelque sorte un excellent LISP, car

  • il a la "syntaxe simplifiée", c'est-à-dire qu'il faut moins de parathensis, il existe un ensemble de collections bien conçu
  • il est basé sur la machine virtuelle Java, il y a donc un environnement d'exécution stable et performant, en plus de tout 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 Java serveurs web et applications

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

En matière de ressources, il existe au moins 4 livres et ressources en ligne:

5
Piotr Kochański

J'ai aimé lire Practical Common LISP et ANSI Common LISP .

Sur LISP semble intéressant, mais à 190 $ semble un peu cher pour un livre.

4
Ferruccio

J'ai trouvé que le fait de travailler dans les exercices de "Le petit Schemer" m'a vraiment aidé à affiner le côté récursif de ma pensée, qui correspondait à un motif, et a considérablement facilité le travail dans XSLT.

4
Andy Dent

Pour le développement Web, vous pouvez jeter un oeil à hunchentoot , un serveur Web écrit en LISP commun.

4
Kim Stebel

Je recommande d'abord une introduction en douceur au calcul symbolique ou à la mise en pratique du LISP commun, en fonction de vos expériences de programmation. Pour m'entraîner, j'utilise Allegro CL 8.2 Free Express Edition sous Windows. Cela rend la pratique très amusante.

2
hajovonta

J'ai trouvé la lecture du livre SICP m'a vraiment aidé à apprendre. J'ai utilisé le LISP commun de la banque d'acier (SBCL) et j'ai eu un bon succès avec ce logiciel.

Bonne chance

1
Brig Lamoreaux

Prenez un seau de (et) et allez en ville ..

1
Chance

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

J'ai appris le LISP dans mon A.I. et des cours Expert Systems au collège, mais c’est comme ça que j’apprends ... Je ne suis pas un grand apprenant à lire des livres, je préfère que l’on me le fasse expliquer en classe.

LISP est vraiment un langage unique et nécessite une nouvelle réflexion si vous êtes habitué à la programmation C, Java, PHP) classique.

Bonne chance à vous !

1
Scott Vercuski

Je ne sais pas si LISP a quelque chose de spécial qui le différencie de l'apprentissage d'une autre langue. Vous devez juste commencer à l’utiliser et à en essayer les fonctionnalités.

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

Une autre option, spécifique à LISP, consisterait à écrire une extension Emacs qui vous aidera dans votre travail habituel.

0
Jon Ericson

Lisez ces livres dans l’ordre: introduction en douceur au calcul symbolique, ANSI Common LISP de Paul Graham, puis passez à Practical Common LISP. Ou ignorez les ACL et utilisez-les comme référence lorsque vous naviguez dans PCL.

0
Abhijith