Destiné aux développeurs qui ont une expérience dans d'autres langages, ce livre permet de saisir la caractérisation de Common Lisp : "a programmable programming language" (que je laisserai non traduite).
J'ajoute en liens quelques références d'implémentations libres de Common Lisp. Une pléiade de stars (enfin, du point de vue du microcosme lispnik) signent les textes de présentation de l'ouvrage : Peter Norvig, Christian Queinnec, Philip Greenspun pour ne citer qu'eux. Il faut dire que les publications dédiées à ce langage ne sont pas légions, et que ce livre comble un manque : en plus de l'introduction normale au langage, il couvre en profondeurs des sujets peu abordés dans les ouvrages existants, de telle façon qu'il constitue un ouvrage complet permettant de se mettre sur de bons rails. De plus, les nombreux exemples décrits sortent des clichés : vous n'y trouverez pas de suite de Fibonacci, mais des sujets actuels.
On pourra conseiller aux lecteurs conquis de poursuivre leur (re)découverte avec les classiques tels que On Lisp de Paul Graham (disponible en ligne), ou Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp de Peter Norvig.
À noter que l'auteur a obtenu de son éditeur, Apress, de pouvoir conserver une version en ligne du livre. Il propose par ailleurs sur son site un paquetage, "Lispbox", permettant d'obtenir rapidement un environnement de développement fonctionnel afin d'expérimenter les exemples du livre, dont le code est téléchargeable.
Aller plus loin
- Le livre en ligne (66 clics)
- Lispbox : un environnement pour tester les exemples du livre et le langage (20 clics)
- Steel Bank Common Lisp (9 clics)
- CMUCL (5 clics)
- GNU CLISP (5 clics)
# Pour débuter...
Posté par tinytom . Évalué à 2.
Il présente pas à pas la syntaxe de ce langage fonctionnel, et permet de se faire rapidement une idée de la puissance de ce langage.
Ce livre est à la base destiné aux étudiants de l'université Bordeaux I et de l'ENSEIRB ; alors merci de respecter les clauses de la page de présentation.
[^] # Re: Pour débuter...
Posté par Delaregue . Évalué à 1.
[^] # Re: Pour débuter...
Posté par zlnix . Évalué à 0.
[^] # Re: Pour débuter...
Posté par Stéphane Traumat (site web personnel) . Évalué à 0.
http://about.me/straumat
[^] # Re: Pour débuter...
Posté par Stéphane Traumat (site web personnel) . Évalué à 0.
http://about.me/straumat
[^] # Re: Pour débuter...
Posté par Tobu . Évalué à 3.
Ca manque de spécialistes ici, mais comme il s'agit d'un livre d'introduction à lisp la news servira quand même, et dans quelques années on n'aura que des pros.
[^] # Re: Pour débuter...
Posté par Thomas Petazzoni (site web personnel) . Évalué à 5.
[^] # Re: Pour débuter...
Posté par Delaregue . Évalué à 2.
http://www.oreilly.com/oreilly/author/writeforus_1101.html:(...)
"We're NOT looking for:
* Books that overlap too heavily with our existing books.
* Books on proprietary technologies that don't have a huge user base.
* Books on miniscule (i.e., personal or nascent) products, even if they are open source.
* Books on topics that have dismal sales despite quality books being available. (If you're addressing a topic where good books have sold dismally in the past (for instance, LISP, LaTeX, or Web-based training), you have a much higher threshold to clear with your proposal. Convince us why there is a revival of interest in your topic, or why your approach to a deadly topic will provoke interest nonetheless.)
* Books that have been rejected by other publishers, in most cases.
"
Mais cela commence a changer un peu; en tout cas ce n'est pas par la grande porte:
http://www.oreilly.com/catalog/hackpaint/index.html(...)
[^] # Re: Pour débuter...
Posté par hocwp (site web personnel) . Évalué à 1.
# Bon bouquin
Posté par librinfo . Évalué à 3.
On y decouvre petit à petit le style de developpement Common Lisp qui semble être des plus efficace et agréable. Le fait de ne plus être tres contraint par ce que les implémenteurs d'un language ont figés est un soulagement. Une tres bonne idée au depart (vs algol, voir par ex http://www.paulgraham.com/rootsoflisp.html(...) ), 45 ans d'evolution (compilateurs etc) derrière, common lisp est vraiment séduisant même vis-à-vis des dernières reférences (python,java etc).
# Quelques liens de plus
Posté par hocwp (site web personnel) . Évalué à 4.
Les références :
http://www.lispworks.com/documentation/HyperSpec/Front/index.htm(...)
http://www-2.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html(...)
Les portails :
http://www.lisp.org/(...)
http://www.cliki.net/(...)
http://common-lisp.net/(...)
http://planet.lisp.org/(...)
Le Common Lisp CookBook :
http://cl-cookbook.sourceforge.net/index.html(...)
Les tutoriels :
http://cs.gmu.edu/~sean/lisp/LispTutorial.html(...)
http://www.lisperati.com/(...)
Et des articles en vracs :
Pascal Costanza's Highly Opinionated Guide to Lisp :
http://www.informatik.uni-bonn.de/~costanza/lisp/guide.html(...)
A Retrospective on Paradigms of AI Programming - Peter Norvig
http://www.norvig.com/Lisp-retro.html(...)
The Right Tool For The Job - Sam Steingold
http://www.podval.org/~sds/tool.html(...)
Et les excellents essais de Paul Graham :
http://www.paulgraham.com/(...)
[^] # Re: Quelques liens de plus
Posté par zaurus (site web personnel) . Évalué à 2.
http://mitpress.mit.edu/sicp/full-text/book/book.html
pour scheme (du Lisp moderne)
ou encore
http://pauillac.inria.fr/caml/books-fra.html#ocaml-oreilly
et
http://pauillac.inria.fr/caml/books-fra.html#camlprimer
pour du CaML / OCaML (de la bête de langage, avec du typage fort).
Bonne lecture
(O:
# Exemple de test d'un code retour erreur en Lisp ?
Posté par free2.org . Évalué à 2.
Quand j'utilise une fonction je fais attention à tester la présence d'un code d'erreur retourné par cette fonction (paramètres incorrects, évènement imprévu, post condition fausse...).
Cela donne quoi ce genre de test en Lisp ? Si quelqu'un a un exemple de code à me montrer... par avance, merci.
[^] # Re: Exemple de test d'un code retour erreur en Lisp ?
Posté par xavier . Évalué à 3.
Une reponse simpliste pourrait etre: comme en C, avec un/des tests adaptés a la fonction, mais plus globalement chercher a transcrire directement des habitudes de C en CL n'est sans doute pas le meilleur moyen d'aborder ce langage, dynamic typing, higher order function, multiple return values, OOP (et non des moindre si l'on parle de pre/post conditions), offres a eux seuls une "foultitude" d'approches de ce probleme :)
mais pour repondre le plus simplement possible a ta demande il est courant d'avoir une valeur de retour == nil (false) ou d'un type specifique en cas d'erreur, soit:
(let ((valeur_retournée (la-fonction)))
(if (predica-adapté valeur_retournée) 'tout_va_bien 'tout_va_mal))
ou plus imperatif:
(unless (predica-adapté (la-fonction)) 'tout_va_mal)
[^] # Re: Exemple de test d'un code retour erreur en Lisp ?
Posté par free2.org . Évalué à 2.
En fait, naïvement, je croyais que des langages comme Lisp évitaient à tout prix d'utiliser des variables temporaires. Et je me demandais quelle contorsion cela donnait quand il faut d'abord tester une valeur de retour, puis l'utiliser si tout va bien.
Ton premier exemple utilise une variable exactement comme on le fait en C.
[^] # Re: Exemple de test d'un code retour erreur en Lisp ?
Posté par Georges . Évalué à 2.
[^] # Re: Exemple de test d'un code retour erreur en Lisp ?
Posté par neil . Évalué à 1.
Surtout qu'en C les macros sont ridicules puisque gérées par un préprocesseur simpliste.
[^] # Re: Exemple de test d'un code retour erreur en Lisp ?
Posté par Georges . Évalué à 3.
[^] # Re: Exemple de test d'un code retour erreur en Lisp ?
Posté par free2.org . Évalué à 2.
Je commence à croire que les différences ne sont pas énormes entre les 2 languages.
[^] # Re: Exemple de test d'un code retour erreur en Lisp ?
Posté par Delaregue . Évalué à -1.
[^] # Re: Exemple de test d'un code retour erreur en Lisp ?
Posté par xavier . Évalué à 1.
[^] # Re: Exemple de test d'un code retour erreur en Lisp ?
Posté par ducon anonymous . Évalué à 2.
Le concept de code d'erreur de retour est une abomination remplacée depuis des lustres par de la gestion d'exceptions, ou à vrai dire dans le cas de (http://fr.wikipedia.org/wiki/Common_Lisp(...) ) Common Lisp, le système de conditions ( http://fr.wikipedia.org/wiki/Syst%C3%A8me_de_gestion_d%27exceptions(...) ).
Un erreur, ça se signale (avec error, signal, warn ...). Ca se traite avec HANDLER-BIND et ça se répare (et la suite redémarre, quand c'est possible) avec des RESTARTS.
[^] # Re: Exemple de test d'un code retour erreur en Lisp ?
Posté par Delaregue . Évalué à 0.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.