Voici l'histoire arrière Passer au fond si vous ne vous souciez pas et que vous voulez seulement voir la question. P>
Alors j'ai joué à Lisp pendant un petit moment. Quelques fonctions de base, certaines classes et fichier IO. Quand je rencontre cet article: P>
http://www.adampetersen.se/articles/lispweb.htm < / p>
Et je suis excité d'essayer d'utiliser LISP pour une application Web. Je vais télécharger les packages, mais pour la vie de moi, je ne sais pas comment les charger dans mon IDE Allegro. p>
hmm ... ok, bien le site Hunchentoot dit que beaucoup de paquets de base sont dans Lispworks. Alors je télécharge ça. Je ne sais pas toujours comment obtenir la source des packages que j'ai téléchargés dans ces IDes. Ils semblent avoir des binaires des paquets? p>
OH Bien peut-être passer à mon serveur Ubuntu et APT-obtenez tous les forfaits et la diffusion de configuration (je ne l'ai pas utilisée auparavant parce que je voulais juste apprendre Lisp. L'apprentissage d'Emacs et de LISP semblait vraiment décourageant). Je suis apte à obtenir tous les forfaits nécessaires et chargez la boue et encore un même problème, il n'est pas disponible. P>
Je creuse d'autres et voyez ce programme appelé Asdf. On dirait que ASDF est une sorte de constructeur de paquets pour LISP? Je ne sais pas que cela semble déroutant. Je suis sur le point d'abandonner à ce stade. P>
Si vous lisez toujours ceci, voici ma question.
1. Comment puis-je charger la source pour ces packages dans mon environnement LISP? Essayer d'apprendre Lisp n'a pas été trop difficile, mais les informations sur les environnements ont été clairsemées. Dois-je construire les paquets que je télécharge avec asdf.
2. Y a-t-il un moyen simple pour quelqu'un de se lever et de courir dans Lisp sans avoir à accélérer une grande quantité de temps d'apprentissage de tous les outils? P>
4 Réponses :
Le moyen le plus rapide de Ubuntu est d'utiliser les packages inclus dans cette distribution. C'est "OK" si vous voulez juste essayer certaines choses, mais ces versions sont souvent comparativement anciennes. Je recommanderais les packages Vous Peut alors démarrer Emacs, démarrer Slime (via Maintenant, lorsque vous avez appris Lisp, vous voudrez peut-être plus de packages à jour. Je recommanderais d'utiliser CLBUILD pour cela (voir le lien pour plus d'informations, y compris la FAQ). Vous pouvez ensuite construire une nouvelle SBCL (bootstrapped par la version de la distribution). P> asdf , au fait, n'est qu'une installation de définition de système. Il ne sait pas comment télécharger des packages, il ne sait que charger des systèmes dans une image LISP en cours d'exécution. En d'autres termes, il résout simplement le problème de charger automatiquement les multiples fichiers que certains «système» (bibliothèque) sont constitués dans le bon ordre. Les versions les plus récentes permettent de charger un package (après son installation, par exemple via CLBUILD) avec une simple version P> sbcl code> et
slime code>. Si vous ne connaissez pas encore Emacs, vous pouvez entrer dans ce didacticiel intégré (
ch t code> (appuyez sur Control-h, relâchez, puis appuyez sur t)).
mx slime code>), ouvrez un fichier LISP (
cx cf ~ / lisp / first-try.lisp code>), et vous êtes prêt. aller. En tant que didacticiel pour Lisp, je pense que la pratique commune pratique est un très bon livre, et il est librement disponible. P>
(asdf:operate 'asdf:load-op 'foo)
Probablement l'un des moyens les plus rapides de démarrer est d'utiliser LISP dans une boîte (ou une spinoffe comme LISPBOX ). Ce sont des ensembles complètes de tout ce dont vous avez besoin. P>
Vous pouvez également essayer le Kit de ressources LISP , qui est un CDROM amorçable avec des outils et une documentation LISP, tous déjà configurés pour vous. Il suffit de le mettre dans votre lecteur de cdrom et de démarrer! P>
hmm ... ok, bien le site Hunchentoot dit que beaucoup de paquets de base sont dans Lispworks. Alors je télécharge ça. P> blockQuote>
Cela signifie simplement que l'auteur a écrit beaucoup de code spécifique Lispworks à Hunchentoot. Cela ne signifie pas que Hunchentoot ne fonctionne que sur Lispworks. P>
Vous ne savez toujours pas comment obtenir la source des packages que j'ai téléchargés dans ces IDes. p> blockQuote>
Vous devez utiliser ASDF. P>
Ils semblent avoir des binaires des paquets? P> blockQuote>
c'est peu probable. P>
oh bien peut-être passer à mon serveur Ubuntu et APT-obtenez tous les packages et la diffusion de configuration> (Je ne l'ai pas utilisée auparavant parce que je voulais juste apprendre Lisp. Apprendre des emacs et Lisp Dans le même temps semblait vraiment décourageant). P> blockQuote>
Ne le faites pas alors. Vous n'avez pas besoin d'utiliser Emacs ou Slime. P>
Je suis apte à obtenir tous les paquets nécessaires et chargez la boue et encore un même problème, il n'y a pas de disponible. p> blockQuote>
L'étape 4 peut maintenant être (ASDF: CHARGE-SYS: NOM SYSTÈME).
Toutes ces réponses sont bonnes, mais elles sont devenues un peu obsolètes avec la nouvelle popularité de QuickLisp. Très vaguement parlant, QuickLisp est le gestionnaire de paquets de l'ASDF. Une fois que QuickLisp est installé sur un système, vous pouvez utiliser LISP fonctionne un peu différemment des autres langues en matière de bibliothèques. La première chose à savoir est que la langue elle-même ne fournit presque aucune fonctionnalité de la bibliothèque - il a (ql: Quickload "Nom de la bibliothèque LISP") CODE> Pour charger cette bibliothèque dans votre environnement LISP, y compris le téléchargement et l'une de ses dépendances si nécessaire. Par exemple, pour télécharger, installer et charger Hunchentoot et toutes ses dépendances, utilisez
(QL: Quickload "Hunchentoot") code>. Dans les sessions ultérieures LISP, appeler
(QL: Quickload "Hunchentoot") CODE> chargera simplement la version déjà téléchargée et installée, rendant
ql: Quickload code> Un moyen simple de charger une bibliothèque disponible localement ou à distance. Pour installer QuickLisp, je vous renvoie à QuickLisp.org . P>
charger code> (qui passe et exécute chaque ligne dans un fichier comme si vous les avez saisis sur la reple) et < Code> Compile-File Code> (qui crée un fichier "Fast Charge", une version précompilée du fichier que
charge code> s et peut em> fonctionner beaucoup plus vite). Utilisation de ce que la langue principale fournit, afin de charger une bibliothèque, vous devez accéder à chacun de ses fichiers et
charger code> it (ou
(chargement (fichier de compiler ")))
asdf code> est roi (tellement de manière à ce que de nombreuses implémentations LISP baissent réellement). Dans la terminologie ASDF, les bibliothèques sont appelées "systèmes" et des fichiers .ASDF décrivent toutes les métadonnées impliquées dans le chargement des systèmes - les systèmes dont ils dépendent et de l'ordre de charger des fichiers dans, surtout, mais ils peuvent toujours devenir assez complexes. QuickLisp, alors, est assis sur l'asdf. Fondamentalement, lorsque Asdf découvre qu'il ne peut pas localiser un système, QuickLisp étage et vérifie et vérifie si ce système est disponible dans l'un des référentiels en ligne de QuickLisp, et si cela le télécharge et que l'ASDF continue de fonctionner.
QL: Quickload CODE> est essentiellement juste une enveloppe autour des machines ASDF pour charger un système qui permet à QuickLisp d'aider au besoin. P>