Scheme / Guile Workshop

Post Reply
Message
Author
bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Scheme / Guile Workshop

#1 Post by bakunin »

Hi!

"Dieser Workshop stellt eine Einführung in die Programmiersprache Scheme und ihre als Unix-Scriptsprache geeignete Implementierung Guile dar. Guile-spezifische Funktionalität soll dabei explizit als solche gekennzeichnet werden und der Schwerpunkt soll zu Beginn auf purem Scheme liegen und sich später leicht Richtung Guile verschieben."

Ich überlege, ob ich sowas demnächst schreiben soll. Besteht daran Interesse oder leiden hier alle and Klammerphobie?

Ich benutze Guile jedenfalls in letzter Zeit außerordentlich intensiv und bin damit ziemlich zufrieden und davon beeindruckt, wie oft mein Scheme-Code auf Anhieb funktioniert.

Cheers,
GNU/Wolfgang

user1

Re: Scheme / Guile Workshop

#2 Post by user1 »

Wärem mehr an SDL oder Tk interessiert <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Eine Fortsetzung zu den beiden vorhandenen Tuts.

Wenn du schon mal da bist. Wie siehts eigentlich mit GNU/Hurd aus, kann man sich langsam produktiv daran wagen ?

Gruss user1

marc
Posts: 444
Joined: 20. Apr 2001 23:31
Location: Arnsberg

Re: Scheme / Guile Workshop

#3 Post by marc »

Tach.

Geh ich recht in der Annahme, daß man einiges aus dem Workshop dann auch für die Lisp-Implementierung des Emacs verwenden kann? Soweit ich weiß ist Scheme ja eins von vielen Lisp-Abkömmlingen. Oder sind die Unterschiede zwischen Scheme und Emacs-Lisp zu groß?

Gruß
Marc

Dominik Seichter

Re: Scheme / Guile Workshop

#4 Post by Dominik Seichter »

Hi!

Würde mich interessieren. Ich hatte schon länger vor mich mit LISP (oder einem seiner Dialekte) zu beschäftigen. Vor allem da LISP Kenntnisse bei der Benutzung von EMACS (den ich immer öfter benutze) sicher von nutzen sind.

CU Dom

bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Re: Scheme / Guile Workshop

#5 Post by bakunin »

Hi!

user1 schrieb:
> Wärem mehr an SDL oder Tk interessiert

Dazu kann ich leider nix schreiben, denn darüber weiß ich auch nichts.

> Wenn du schon mal da bist. Wie siehts eigentlich mit GNU/Hurd aus, kann man sich langsam produktiv daran wagen ?

David Walter setzt GNU/Hurd für 80% seiner Arbeit ein, hat aber einige Anpassungen durchgeführt, um es stabiler zu machen (einige der Debian Default cron-Jobs sollte man offenbar deaktivieren).

Ich habe mir fest vorgenommen, dieses Jahr anzufangen, GNU/Hurd ernsthaft einzusetzen.

Marc R. schrieb:
> Geh ich recht in der Annahme, daß man einiges aus dem Workshop dann auch für die Lisp-Implementierung des Emacs verwenden kann?

Hierzu gebe ich ein klares "Jein". <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

> Soweit ich weiß ist Scheme ja eins von vielen Lisp-Abkömmlingen.

Ja, es ist ein LISP-Dialekt.

> Oder sind die Unterschiede zwischen Scheme und Emacs-Lisp zu groß?

ELisp und Scheme sind relativ unterschiedliche LISPs. Allerdings ist langfristig geplant, die ELisp-Implementierung durch Guile zu ersetzen. Dann würde ELisp zwar weiterhin noch existieren (und zuerst in Scheme umgeformt werden), doch auch Guile sollte dann als Scriptsprache in Emacs verfügbar werden.

Als LISPs haben die beiden gewiss viele Ähnlichkeiten, aber beide gleichzeitig zu lernen würde ich nicht empfehlen, denn da wird man enorm verwirrt. Nur mal ein Beispiel dazu:

In ELisp gilt die leere Liste "()" als logisch falsch (false) und "nil" ist eine alternative Schreibweise dafür. In Scheme hingegen ist nur "#f" logisch falsch und die leere Liste (die übrigens in Scheme gequotet werden muss: "'()") ist logisch wahr. In Guile gibt es zudem noch das Symbol "nil", das aber weder identisch zu #f noch zu '() ist, sondern komplett eigenständig. Reicht das aus, um klar zu machen, dass man seinen Code nicht in Scheme und Elisp ausführen kann? :)

Andererseits sind die Grundideen natürlich problemlos übertragbar, und wenn man ein beliebiges LISP kann, kann man auch in einem anderen schnell produktiv werden, sobald man dessen Grundlagen gelernt hat.

Dominik Seichter schrieb:
> Würde mich interessieren. Ich hatte schon länger vor mich mit LISP (oder einem seiner Dialekte) zu beschäftigen. Vor allem da LISP Kenntnisse bei der Benutzung von EMACS (den ich immer öfter benutze) sicher von nutzen sind.

Da das Interesse an ELisp ja anscheinend groß ist (obwohl es eine wundervolle Einführung in englischer Sprache gibt), mache ich mal folgenden Vorschlag:

Es wird ein Kapitel geben, in dem Unterschiede zwischen ELisp und Scheme erklärt werden und in dem auch durchaus tatsächlicher Elisp-Code gezeigt wird. Außerdem wird es gleich am Anfang einige Hinweise dazu geben, wie man Emacs so konfiguriert, dass man damit gut mit Scheme arbeiten kann, klingt das gut?

Cheers,
GNU/Wolfgang

marc
Posts: 444
Joined: 20. Apr 2001 23:31
Location: Arnsberg

Re: Scheme / Guile Workshop

#6 Post by marc »

Moin.

Sorry, daß es so lange mit der Antwort gedauert hat.

> Reicht das aus, um klar zu machen, dass man seinen Code nicht in Scheme und Elisp ausführen kann? :)

Reicht. Danke für das Beispiel. Solche inkompatiblen Kleinigkeiten kann man ja noch relativ schnell mit "Suchen und Ersetzen" mehr oder weniger geradebiegen. :)

> Es wird ein Kapitel geben, in dem Unterschiede zwischen ELisp und Scheme erklärt werden und in dem auch durchaus tatsächlicher Elisp-Code gezeigt wird.

Ich wollte mit meiner Frage nicht zum Ausdruck bringen, daß mich Guile nicht interessiert. Ich hoffe nicht, daß Du jetzt den Scheme-Workshop zugunsten von ELisp kürzt. ;)
Btw, ich habe gerade mal einen Blick auf dmd geworfen. Ich habe vorher noch so gut wie keinen Scheme-Code gesehen, aber ich fand es erstaunlich einfach, doch so halbwegs zu verstehen, was der Code macht, da einige Befehle relativ selbsterklärend sind. (Die Präfix-Notation finde ich allerdings gewöhnungsbedürftig...)

> Außerdem wird es gleich am Anfang einige Hinweise dazu geben, wie man Emacs so konfiguriert, dass man damit gut mit Scheme arbeiten kann, klingt das gut?

Jep, klingt gut. Freu mich schon drauf. :)

Gruß
Marc

bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Re: Scheme / Guile Workshop

#7 Post by bakunin »

Hi Marc!

> Reicht. Danke für das Beispiel. Solche inkompatiblen Kleinigkeiten
> kann man ja noch relativ schnell mit "Suchen und Ersetzen" mehr oder
> weniger geradebiegen. :)

Ja, und man kann die Problematik des "lexical scoping" (Scheme) vs.
"dynamical scoping" (ELisp) umgehen indem man von keinem Verhalten
explizit Gebrauch macht, und die Unterscheidung zwischen Variablen und
Funktionen von ELisp, die es in Scheme nicht gibt ebenso. Und man kann
Funktionen/Prozeduren für quasi fast alles abstrahieren...

Wusstest du, dass langfristig geplant ist, die Elisp-Implementierung
durch Guile zu ersetzen? Der bestehende ELisp-Code würde dann
(mehr oder weniger) on-the-fly in Guile übersetzt. Das sähe dann wohl
ähnlich aus wie der Python-to-Guile Compiler, an dem Thomas Bushnell,
BSG arbeitet (siehe <a href="http://savannah.gnu.org/projects/gpc/" target="_blank"><!--auto-->http://savannah.gnu.org/projects/gpc/</a><!--auto--> ). Es sollte
dann prinzipiell auch möglich sein, Emacs mittels Guile zu erweitern.

> Ich wollte mit meiner Frage nicht zum Ausdruck bringen, daß mich
> Guile nicht interessiert. Ich hoffe nicht, daß Du jetzt den
> Scheme-Workshop zugunsten von ELisp kürzt. ;)

Werde ich nicht, er wird nur insgesamt länger.

> Btw, ich habe gerade mal einen Blick auf dmd geworfen. Ich habe vorher
> noch so gut wie keinen Scheme-Code gesehen, aber ich fand es
> erstaunlich einfach, doch so halbwegs zu verstehen, was der Code
> macht, da einige Befehle relativ selbsterklärend sind. (Die
> Präfix-Notation finde ich allerdings gewöhnungsbedürftig...)

Ja, vor allem für arithmetische Ausdrücke. Allerdings findet man nach
einiger Zeit die Infix-Notation ziemlich absurd. Ist also durchaus
reine Gewöhnungssache.

Cheers,
GNU/Wolfgang

Post Reply