Domanda

sto leggendo Pratico Lisp comune come risultato di un'altra domanda .

Ho appena letto i capitoli 16 e 17 in cui puoi trovare come LISP gestisce gli oggetti. Ma dopo un paio di anni a pensare a come Java gestisce gli oggetti, non riesco davvero a capire come implementereste architetture più grandi in LISP usando il CLOS.

Quindi vi chiedo ragazzi per circa 20-50 pagine che leggono su CLOS applicate a architetture più grandi di semplici esempi. Forse un paio di post sul blog o addirittura esperienze!

TY

È stato utile?

Soluzione

Forse dai un'occhiata alle applicazioni di esempio che vengono esaminate nei capitoli successivi. Vedrai che le classi e gli oggetti sono solo un altro strumento nella tua scatola. Resistete alla tentazione di programmare Java con la sintassi di Lisp.

Un altro posto da guardare è Lisp riuscito , capitoli 7 e 14 per le basi e i capitoli 31 e una parte di 3.10 riguardano i pacchetti e la gestione di grandi progetti.

Alcuni guru di Lisp (potrebbe essere stato Paul Graham, ma non ne sono sicuro) una volta hanno detto che non ha ancora avuto bisogno di CLOS.

modifica : penso che la tua confusione possa derivare dal fatto che in Lisp non usi il sistema di classi per organizzare gli spazi dei nomi. Questo viene fatto separatamente; i due non hanno davvero nulla a che fare l'uno con l'altro.

Altri suggerimenti

Se desideri ottenere il libro, "Programmazione orientata agli oggetti in LISP COMUNE" di Sonja E. Keene, il capitolo 11 (Sviluppo di un programma CLOS avanzato: stream) contiene un esempio non banale con eredità multipla che copre circa 40 pagine.

Otto classi sono discusse in dettaglio (stream, input-stream, output-stream, bidirezionale-stream, character-stream, byte-stream, disk-stream e tape-stream). Le classi concrete che ci si aspetta che un utente crei istanze sono quindi derivate usando l'ereditarietà multipla.

È più sostanziale dell'esempio del conto bancario in Practical Common Lisp. Potresti anche trovare utile il resto del libro di Keene per ottenere una comprensione più profonda di CLOS: l'intero libro parla di CLOS.

Se vuoi davvero capire CLOS, puoi tornare indietro e leggere The Art of the Meta Object Protocol , che fornisce la base e il codice sottostante per Closette, una versione del sottoinsieme di CLOS.

Anche noi di Weblocks utilizziamo pesantemente il CLOS, quindi potresti cercare la fonte a bit.

Le applicazioni CLOS più grandi lo sono 1) CAPI di Lispworks 2) server web cl-http 3) un pacchetto CLOS molto grande è CLIM 4) se ti piace OpenGenera (che è un sistema operativo Lisp che utilizza Common Lisp e alcuni predecessori ZetaLisp 5) un pacchetto più piccolo è http://www.cliki.net/mel-base

Saluti Friedrich

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top