Che cosa rende Common Lisp "grande"? [chiuso]

7

Ho imparato sia Common Lisp che Racket, e una cosa che sento costantemente è che Racket è un linguaggio molto più "piccolo" rispetto a Common Lisp. Mi chiedevo cosa significasse veramente. Per quanto ne so, la sintassi per Common Lisp non è molto più grande di Racket.

Fondamentalmente, mi chiedo cosa sia più grande della lisp comune. Ha più sintassi di cui non sono a conoscenza? Ha ambienti più grandi? Più grandi eseguibili? Biblioteche più grandi? O qualche combinazione di questi?

Per favore, questa non è una discussione "quale è meglio", vorrei solo sapere esattamente cosa significa "più grande".

    
posta jepugs 10.06.2013 - 23:26
fonte

4 risposte

4

Common Lisp ha una grande libreria standard. Poi di nuovo, così fa Racket.

La differenza principale è che Racket separa tutto in moduli, in modo che i programmi che non utilizzano tutta la libreria standard non debbano vederlo. Importi solo i bit che vuoi usare, e il resto è ben nascosto.

    
risposta data 10.06.2013 - 23:34
fonte
9

Forse una misura oggettiva (se indiretta) sarebbe utile qui. Considera le dimensioni delle specifiche per le lingue.

Il racket è fondamentalmente un'implementazione di R6RS Scheme. La specifica R6RS è lunga 90 pagine, totale. Di questo, circa 25 pagine sono dedicate al linguaggio corretto, e circa 30 sono dedicate alla sua libreria standard. Oltre a ciò, ottieni materiale introduttivo, riferimenti, glossario, ecc. A seconda del punto di vista, potresti argomentare per un intervallo da circa 50 a 90 pagine come il "vero" totale delle specifiche appropriate.

La specifica Common Lisp è di circa 1400 pagine in totale. Di nuovo, questo include il materiale ausiliario. Tuttavia, penso che quasi tutti dovrebbero ammettere / essere d'accordo sul fatto che le specifiche stesse siano almeno 800 pagine.

In altre parole, anche se prendiamo la stima più piccola possibile per la specifica CL e la confrontiamo con la stima più grande possibile per la dimensione di R6RS, finiamo con le specifiche CL che sono circa 10 volte la dimensione del Specifiche dello schema.

    
risposta data 11.06.2013 - 01:46
fonte
4

In realtà Common Lisp non è più molto grande rispetto a parecchie altre lingue. Se guardi le specifiche del Common Lisp, allora vedi che le pagine sono molto lunghe e spesso su un costrutto. Lo standard Scheme, ad esempio, descrive una dozzina di funzioni su una singola pagina, in cui Common Lisp utilizza una pagina.

Lingue come R6RS + Librerie + SRFI , Racket o R7RS grandi non sono molto più piccole di ANSI Common Lisp.

Dove Common Lisp è grande: quando si calcola alcune delle librerie semi-standard come i MOP, i flussi basati su CLOS, ecc. I manuali per alcune delle comuni implementazioni di Common Lisp tendono ad essere grandi, perché forniscono molto delle funzionalità in modo esteso.

    
risposta data 12.06.2013 - 22:30
fonte
2

Common Lisp ha una libreria standard molto grande nel pacchetto COMMON-LISP .

La libreria standard di Scheme è molto più piccola; ogni implementazione ha una propria libreria (spesso abbastanza grande da competere con i CL), di solito in molti moduli.

Per quanto riguarda la sintassi, per quanto ne so, la sintassi di Scheme è "fissa" mentre Common Lisp ha strumenti molto potenti che possono essere usati per modificare i suoi lettore . Ad esempio, CLOCC / CLLIB / xml.lisp analizza XML usando LEGGERE !

    
risposta data 11.06.2013 - 01:13
fonte

Leggi altre domande sui tag