Warum Lisp toll ist: Unterschied zwischen den Versionen

aus dem Wiki des Entropia e.V., CCC Karlsruhe
(Automagically converted by twiki2mediawiki)
 
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=== Vortrag: Warum Lisp toll ist. ===


 
<p>
== Vortrag: Warum Lisp toll ist. ==
 
Mein Vortrag soll weniger eine Einführung in Lisp darstellen, als
Mein Vortrag soll weniger eine Einführung in Lisp darstellen, als
vielmehr Gründe liefern, warum sich ein Erlernen von Lisp lohnt -- es
vielmehr Gründe liefern, warum sich ein Erlernen von Lisp lohnt -- es
Zeile 12: Zeile 11:
der S-Expressions (s-exp) nicht fehlen, um zu erfahren, wie die
der S-Expressions (s-exp) nicht fehlen, um zu erfahren, wie die
Lisp-Syntax der Code-Beispiele zu interpretieren ist.
Lisp-Syntax der Code-Beispiele zu interpretieren ist.
 
</p>
<p>
In erster Linie sollen Gründe aufgezeigt und in Beispielen
In erster Linie sollen Gründe aufgezeigt und in Beispielen
veranschaulicht werden, warum denn Entwickeln in Lisp so schnell geht
veranschaulicht werden, warum denn Entwickeln in Lisp so schnell geht
Zeile 18: Zeile 18:
* noch unvollständige Programme starten
* noch unvollständige Programme starten
* einzelne Funktionen in das laufende Programm hinzukompilieren
* einzelne Funktionen in das laufende Programm hinzukompilieren
* sich in die Lisp-Instanz eines laufenden Programme einklinken
* sich in die Lisp-Instanz eines laufenden Programme einklinken und  beispielsweise Variablen betrachten oder verändern (da der Lisp-Compiler ja immer verfügbar ist)
  und  beispielsweise Variablen betrachten oder verändern
  (da der Lisp-Compiler ja immer verfügbar ist)
* die Funktionen apropos, describe, documentation, inspect, ...
* die Funktionen apropos, describe, documentation, inspect, ...
 
</p>
<p>
Dabei ist ein Emacs definitiv die Entwicklungsumgebung der Wahl. Dank
Dabei ist ein Emacs definitiv die Entwicklungsumgebung der Wahl. Dank
beispielsweise des Slime gibt es eine hohe Integration von Emacs und
beispielsweise des SLIME gibt es eine hohe Integration von Emacs und
Lisp-Compiler, die so weit geht, daß Emacs beim Quelltextschreiben auf
Lisp-Compiler, die so weit geht, daß Emacs beim Quelltextschreiben auf
die laufende Lisp-Instanz zugreifen kann, um dann beispielsweise in
die laufende Lisp-Instanz zugreifen kann, um dann beispielsweise in
Zeile 34: Zeile 33:
Common-Lisp-Spezifikation (die übrigens hochgradig lesbar ist und
Common-Lisp-Spezifikation (die übrigens hochgradig lesbar ist und
viele Codebeispiele enthält).
viele Codebeispiele enthält).
 
</p>
<p>
Und dann sind da natürlich noch die mächtigen Lisp Makros... Für die
Und dann sind da natürlich noch die mächtigen Lisp Makros... Für die
Noch-Uneingeweihten: Lisp hat nicht etwa eine nur einfache
Noch-Uneingeweihten: Lisp hat nicht etwa eine nur einfache
Zeile 40: Zeile 40:
selbst als seine Makrosprache.. Was das für niedliche Folgen hat,
selbst als seine Makrosprache.. Was das für niedliche Folgen hat,
versuche ich ebenfalls klarzumachen.
versuche ich ebenfalls klarzumachen.
 
</p>
-- Main.[[Main_MgR|MgR]] - 18 May 2004
[[Kategorie:Vorträge]]
 
[[Kategorie:LISP]]

Aktuelle Version vom 21. Juli 2017, 17:42 Uhr

Vortrag: Warum Lisp toll ist.

Mein Vortrag soll weniger eine Einführung in Lisp darstellen, als vielmehr Gründe liefern, warum sich ein Erlernen von Lisp lohnt -- es ist nämlich wirklich toll.. :} Eine Lisp-Einführung benötigt, wenn sie wirklich sinnvoll sein soll, sicherlich mehr Zeit als lediglich eine Stunde, zumal wohl jeder im Publikum schon die ein oder andere Sprache gelernt hat und weiß, wie er/sie sich am besten in eine neue einarbeiten kann. Trotzdem kann am Anfang wohl eine kurze Erklärung der S-Expressions (s-exp) nicht fehlen, um zu erfahren, wie die Lisp-Syntax der Code-Beispiele zu interpretieren ist.

In erster Linie sollen Gründe aufgezeigt und in Beispielen veranschaulicht werden, warum denn Entwickeln in Lisp so schnell geht und einfach mehr Spaß bereitet. Als da wären zum Beispiel:

  • noch unvollständige Programme starten
  • einzelne Funktionen in das laufende Programm hinzukompilieren
  • sich in die Lisp-Instanz eines laufenden Programme einklinken und beispielsweise Variablen betrachten oder verändern (da der Lisp-Compiler ja immer verfügbar ist)
  • die Funktionen apropos, describe, documentation, inspect, ...

Dabei ist ein Emacs definitiv die Entwicklungsumgebung der Wahl. Dank beispielsweise des SLIME gibt es eine hohe Integration von Emacs und Lisp-Compiler, die so weit geht, daß Emacs beim Quelltextschreiben auf die laufende Lisp-Instanz zugreifen kann, um dann beispielsweise in der Statusleiste automatisch anzuzeigen, welche Parameter die Funktion/Methode akzeptiert, deren Name man gerade eingetippt hat. Auch kann man bei Fehlern direkt an die problematische Stelle des eigenen Codes (oder auch der Funktionen des Lisp-Compilers selbst) springen, und hat direkten Zugriff auf die Funktionsdefinitionen der Common-Lisp-Spezifikation (die übrigens hochgradig lesbar ist und viele Codebeispiele enthält).

Und dann sind da natürlich noch die mächtigen Lisp Makros... Für die Noch-Uneingeweihten: Lisp hat nicht etwa eine nur einfache Textersetzung als Makrosprache, wie beispielsweise C, sondern Lisp selbst als seine Makrosprache.. Was das für niedliche Folgen hat, versuche ich ebenfalls klarzumachen.