2009-12-08 11 views
14

Ich möchte lernen und verwenden SBCL wegen seiner Leichtigkeit des Lernens und Geschwindigkeit. (Ich habe vor 3 Jahren mit Lisp gespielt, und jetzt aktualisiere ich es.) Aber wie kann ich lernen, was in der Standardbibliothek enthalten ist, damit ich die Dinge nicht neu implementiere?Dokumentation der SBCL-Standardbibliothek?

Nach Python ist dies wie ein Alptraum: die SBCL Webseite ein manual hat, der die Software deckt nur, kein Wort über die Standard-Bibliothek. (Zum Vergleich, Gnu Common Lisp Webseite hat nur Quellen und Binärdateien.)

Antwort

19

Erstens: das Problem nicht wirklich SBCL spezifisch ist. Die CL-Bibliothek ist standardisiert und Sie können somit die Dokumentation eines beliebigen Lisp verwenden.

Wie erwähnt, ist die CL HyperSpec sehr nützlich. Es ist jedoch eine Referenz und somit meiner Meinung nach nicht sehr zum Lernen geeignet.

Zum Lernen gibt es verschiedene Bücher da draußen. Ich mag persönlich diese eine Menge:

Sie sollten auch bei vorhandenen Code aussehen. Es hat mir besonders Spaß gemacht, eine der Bibliotheken von Edi Weitz zu lesen, aber ich habe sie aus verschiedenen Quellen verbreitet und gelesen, um zu sehen, wie andere Leute Lisp und seine riesige Bibliothek benutzen, um Probleme zu lösen.

Wenn Sie so viel Zeit verbringen können Sie sogar auf IRC (#lisp channel) anmelden und Fragen dort stellen. Oder schreiben Sie eine Postleitzahl, die Sie an comp.lang.lisp geschrieben haben, und bitten Sie um eine Kritik, die Sie über direktes Feedback erfahren können.

+0

Danke für einen großen Beitrag. Ich habe in den Jahren 2006-2007 eine Weile Lisp gelernt, aber was mich dann aufgehalten hat, war der Mangel an realen Anwendungen für mich (jetzt gibt es einen) und dieses sehr stlib-Problem. –

10

Wenden Sie sich an Common Lisp HyperSpec für die Dokumentation über das, was in Common Lisp enthalten ist

3

Wenn Sie Lisp lernen, sollten Sie auch CLISP anstelle von SBCL verwenden. CLISP hat (IMHO) einen viel intuitiveren Debugger. Für alle nicht-produktiven Sachen ist der Unterschied zwischen den meisten gängigen Lisp-Implementierungen vernachlässigbar.

+0

Warum ich SBCL mochte ist, dass es Dateien on the fly kompiliert ('sbcl --file ' und hier geht es mit der Lichtgeschwindigkeit). Ich konnte nicht herausfinden, wie man das in anderen Implementierungen macht. Ich werde auch CLISP anschauen, danke. –

+3

CLISP Debugger ist sehr nett, aber die SBCL-Debugger ** über seine SLIME-Schnittstelle ** ist überhaupt nicht unangenehm. Wenn Sie Ihren CL von einer eigentlichen Befehlszeilensitzung aus verwenden möchten, ist CLISP IMO die beste Wahl, da Readline bereits integriert ist. Wenn Sie SLIME verwenden, ist das ein härterer Anruf. – Pillsy

+1

@Pillsy Ich kann definitiv sympathisieren, aber ich möchte auch erwähnen, dass sbcl's Kommandozeilenfehler (relativ) leicht durch die Installation von 'linedit' durch quicklisp behoben werden können. Es gibt Ihnen Readline und Tab Completion. – FizzixNerd

1

Wenn Sie unter Windows entwickeln, CLHS (Common Lisp HyperSpec) und CLtL2 (Common Lisp die Sprache, 2. Auflage) ist als CHM-Hilfedateien zur Verfügung, die für die CL-Standardbibliothek Funktionen macht die Suche viel einfacher. Ich finde, dass es schneller ist als die Verwendung der (online oder offline) HTML-Version.

Die CHM-Dateien sind wahrscheinlich aus mehr als einer Quelle verfügbar. Ein bequemer Download ist:

http://www.daansystems.com/lispide/

(Sie sind mit LispIDE Paket gebündelt.)