Wolfgang Jährling

Untertitel sind überflüssig

Mehr Code in Lists on a stack

(Keywords: Lists on a stack)

Soeben habe ich das implementiert, was man in LISP als gensym kennt: Neue Symbole generieren. Das ist zwar vor allem für LISP-Makros interessant (die ich vielleicht nie haben werde, wenn auch vermutlich etwas ähnliches), aber es gibt auch gelegentlich andere Situationen, in denen man neue Symbole braucht, die eben noch nicht für etwas anderes benutzt werden. Die Implementierung ist sehr kurz, das ist das komplette Modul:

Gen-Counter: 0

sym-gen: | Prefix
(Gen-Counter: ++ Gen-Counter
 str->sym str-append Prefix obj->str Gen-Counter)

Allerdings musste ich erst noch obj->str implementieren, was aber einfach war, da ich bereits Streams habe, die in einen str schreiben ("String Destination", kurz str-dst):

obj->str: | Obj
(str-dst->str stream-out .. Obj str-dst-new)

Damit bin ich auch meinem Versprechen nachgekommen, hier mal etwas I/O-Code zu posten. ;-) Was allerdings auffällt ist, dass ich erheblich weniger Klammern brauche als in LISP (was auch naheliegend ist), woraus sich zwei Dinge ergeben: Erstens braucht man nicht zwangsweise einen dafür besonders geeigneten Editor wie GNU Emacs, und zweitens muss man weniger tippen. :-)

Comments