View Full Version : [Clisp] Risorse
The_ouroboros
07-04-2013, 19:09
Sera a tutti,
Avete qualche risorsa da consigliarmi su Clisp?
Grazie e buona serata
Inviato dal mio Sony Xperia P
The_ouroboros
08-04-2013, 10:18
Qualcosa (http://www.gigamonkeys.com/book) l'ho trovato di già.
Si', quel libro secondo me e' il piu' indicato per common lisp.
Ti consiglio di usare pero' qualcos'altro che non sia CLISP, meglio SBCL (http://www.sbcl.org) (sotto linux) o CCL (http://ccl.clozure.com/) sotto windows o mac.
Ti consiglio poi di usare qualcosa di piu' intelligente del semplice prompt dei comandi (il che vuol dire, nel bene e soprattutto nel male, usare emacs+slime)
The_ouroboros
09-04-2013, 16:54
grazie per i consigli.
Sublime text non va bene per lisp, vero? :)
Cmq è proprio un bel linguaggio :D
Ah per iniziare puo'andare benissimo, ma ti consiglio di provare emacs e slime quanto prima. Ti permette di fare tutto quello che un editor moderno consente.
Indentazione, highlight, navigazione (vai alla definizione della funzione etc), e soprattutto terminale interattivo. Puoi modificare le funzioni al volo e caricarle su un programma in esecuzione (come l'edit e continue di visual studio, ma senza lo stop :D).
Lo sviluppo in lisp e' solitamente molto interattivo anche se forse non quanto con Smalltalk. Rinunciare alla parte interattiva vuol dire far molta piu' fatica.
In caso posso darti una mano con la configurazione iniziale.
The_ouroboros
09-04-2013, 17:14
scaricato slime, SBCL e installato.
Qualche dritta?
The_ouroboros
09-04-2013, 17:29
ho cominciato a dare un occhio a emacs+slime e lisp... interessante :D
Il mio primo suggerimento e' quello di scaricare quicklisp.
e' un tool per scaricare, compilare e tenere aggiornati i pacchetti lisp (stile CPAN o ruby gems, anceh se con meno pacchetti)
(# indica comando da shell, * indica comando lisp, le altre righe sono output)
# wget http://beta.quicklisp.org/quicklisp.lisp
# sbcl
* (load "quicklisp.lisp")
<blablabla>
* (quicklisp-quickstart:install)
<blablabla>
* (ql:add-to-init-file)
I will append the following lines to #P"/home/user/.sbclrc":
;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init #P"/home/user/quicklisp/setup.lisp"))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
Press Enter to continue.
Premi enter e a questo punto quicklisp parte in automatico, ora si puo' passare a slime
* (ql:quickload :quicklisp-slime-helper)
<blablablabla>
La parte rilevante e' quella seguente
To use, add this to your ~/.emacs:
(load (expand-file-name "/home/user/quicklisp/slime-helper.el"))
;; Replace "sbcl" with the path to your implementation
(setq inferior-lisp-program "sbcl")
Aggiungi queste ultime tre righe al file indicato (nel tuo caso i path saranno diversi!), e poi riavvia emacs.
Puoi fare partire slime con M-x slime (ovvero Alt-x e poi scrivi "slime" seguito da invio)
The_ouroboros
09-04-2013, 20:03
Grazie molte. Al momento il lisp e una mia volontà di ampliare le mie conoscenze ma lo trovo molto utile e divertente ^_^
Inviato dal mio Sony Xperia P
The_ouroboros
10-04-2013, 10:22
Puoi fare partire slime con M-x slime (ovvero Alt-x e poi scrivi "slime" seguito da invio)
Moolto interessante :D
P.S: (defun pari (x) (if (= (mod x 2) 0) (print "Pari") (print "Dispari")))
che eleganza:eek:
Ah la vera eleganza cominci ad apprezzarla quando ti addentri nelle macro e scopri che riesci a modellare e semplificare il linguaggio per adattarlo al contesto.
Quello delle macro e' un mondo tutto a se da esplorare e nulla ha a che a vedere con gli aborti presenti in altri linguaggi.
un esempio e' la sintassi per le query sql di cl-sql
(select [first-name] :from [employee] :flatp t :distinct t
:field-names nil
:result-types nil
:order-by [first-name])
Simile a linq di c# per certi versi, ma senza alcun bisogno di supporto da parte del linguaggio (e' implementato come libreria).
Comunque va avanti con il libro che hai gia' trovato, vedrai che ti fara' implementare un po' di cose pratiche, come un framework per lo unit test, un parser di tag id3, un server shoutcast o un generatore di html...
The_ouroboros
10-04-2013, 17:09
Simile a linq di c# per certi versi, ma senza alcun bisogno di supporto da parte del linguaggio (e' implementato come libreria).
Comunque va avanti con il libro che hai gia' trovato, vedrai che ti fara' implementare un po' di cose pratiche, come un framework per lo unit test, un parser di tag id3, un server shoutcast o un generatore di html...
Notavo...
Molto entusiasmante e da matematico...direi interessante a livello simbolico :fagiano:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.