Utilizzo SBCL, emacs, slime e quicklisp per installare vari pacchetti.In Common Lisp cos'è una rappresentazione stampata?
I istanziare e avviare un accettore hunchentoot in questo modo,
CL-USER> (hunchentoot:start (make-instance 'hunchentoot:acceptor :port 4242))
#<HUNCHENTOOT:ACCEPTOR (host *, port 4242)>
verifico aprendo il browser sulla porta 4242 e funziona benissimo.
Poi per fermarlo, posso copiare la rappresentazione stampata ed eseguire il comando, in questo modo:
CL-USER> (hunchentoot:stop #<HUNCHENTOOT:ACCEPTOR (host *, port 4242)>)
#<HUNCHENTOOT:ACCEPTOR (host *, port 4242)>
Questo funziona solo con la rappresentazione stampata restituito dal corrispondente di avvio.
Questo è sorprendente per me. Pensavo che la rappresentazione stampata fosse semplicemente un testo restituito, presumibilmente perché l'oggetto stesso non poteva essere mostrato. Come tale, ho pensato che fosse abbastanza pulito quello hunchentoot: stop poteva usare la stringa di testo per trovare l'oggetto. Ma poi con più sperimentazione, ho notato che dovevo usare la rappresentazione stampata corrispondente all'inizio, non solo uno qualsiasi. Inoltre noto che quando metto il mouse sulla rappresentazione stampata, evidenzia l'intero segmento. Quindi non è affatto testo ma l'oggetto che è in REPL e posso usarlo.
Quindi da un lato ciò che viene restituito è una rappresentazione di stampa, quindi posso vederlo, ma dall'altro è l'oggetto reale che posso copiare e incollare nel REPL. È giusto? Immagino che debba essere perché lo sto facendo. Questo è assolutamente incredibile per me.
Qualsiasi spiegazione o intuizione sarebbe molto apprezzata.
Eccellente. Grazie per il collegamento al manuale e per il riferimento Zdybel (Google trova facilmente un PDF). – kes