Je suis un programmeur C++ qui essaie d'apprendre Common Lisp. J'ai consulté des livres comme Land of Lisp et lu de nombreux articles en ligne sur les différentes vertus de Lisp. Cependant, j'ai besoin de quelques conseils.
Presque tout ce que j'ai lu sur Common Lisp a trait à la façon dont il est étonnant et à la rapidité incroyable avec laquelle on peut faire des choses avec lui, et à la façon dont il a résolu de façon incroyable de nombreux problèmes des langages de programmation modernes il y a 30 ans. De même, les macros sont incroyables, et tous les paradigmes de programmation (OO, fonctionnel, basé sur les acteurs, etc.) peuvent être utilisés en Lisp, et les listes sont la structure de données ultime. En gros, traiter Lisp comme un langage de recherche et dire à quel point il est différent et révolutionnaire.
Et tout cela est probablement vrai, mais le problème est que je n'ai pas vu beaucoup de choses sur la façon de faire des choses pratiques comme lire un fichier, le diviser en mots et faire un traitement dessus. Je ne suis pas intéressé par l'apprentissage de Common Lisp pour le plaisir d'apprendre Common Lisp, mais pour pouvoir faire des choses que j'avais l'habitude de faire en C++ plus rapidement et avec moins d'erreurs.
Donc ma question est quelle est la meilleure ressource (que ce soit un site web, un livre, n'importe quoi) qui se concentre sur l'enseignement de l'utilisation de Common Lisp pour effectuer des tâches de programmation courantes. comme
- Comment lire les fichiers
- Comment lire un fichier, remplacer des mots dans le fichier et réécrire le résultat dans le fichier ?
- Interroger les fichiers d'un répertoire et d'autres éléments du système de fichiers.
- Interagir avec une base de données SQL
- Communiquer via des sockets
- Threading pour des choses comme un serveur web
- Créer des interfaces graphiques
- Effectuer des opérations sur des fichiers binaires
- Écrire un analyseur syntaxique (pas un interpréteur pour Lisp en Lisp, ce qui, d'après ce que j'ai compris, correspond à 5 lignes de Lisp).
- Interagir avec le système d'exploitation (c'est-à-dire des choses écrites en C ou C++) pour faire des choses que Lisp ne peut pas faire nativement.
- Comment écrire des extensions Lisp en C (est-ce possible ?)
- Intégrer un interpréteur lua (est-ce possible ?)
Et aussi, sur une note moins immédiatement pratique, comment mettre en œuvre des structures de données communes en lisp, comme un tas, une pile, un arbre de recherche binaire, etc. Cependant, cela peut être simplement en utilisant les opérations de liste de Lisp comme car
y cdr
de la bonne manière. Je ne sais pas.
Je doute fortement que tout cela (à l'exception improbable des deux derniers de la liste) soit impossible avec Lisp, sinon les gens ne l'aimeraient pas autant. Et les documents susmentionnés que j'ai lus mentionnent de nombreux logiciels du monde réel écrits en Lisp (le magasin Web de Yahoo ! me vient à l'esprit).
Cependant, le fait d'avoir programmé dans un ( le ? ), je suis impatient d'utiliser mes nouvelles connaissances pour écrire des applications concrètes. Alors quel est le moyen le plus rapide d'apprendre à écrire des logiciels pratiques avec Lisp ?
Au fait, j'ai vu le film de Peter Seibel. Pratique du Common Lisp mais, à en juger par le TOC, il n'aborde que les sujets suivants un peu de des choses pour lesquelles j'aimerais apprendre à utiliser Lisp.
Une dernière question si je peux me permettre (désolé si je combine deux questions en une seule), où puis-je trouver une référence aux fonctions de Lisp et autres ?
Et je vraiment veulent aimer Lisp.