Seite 1 von 2

Verfasst: Freitag 14. Dezember 2007, 01:00
von Leonidas
Wenn du dynamische Codegenerierung magst, dann könnte dir Lisp mit seinen Makros gefallen :)

Verfasst: Freitag 14. Dezember 2007, 08:43
von BlackJack
Wobei die Makros in Lisp und Scheme etwas besser und sicherer sind als ``exec`` in Python. Programmstrukturen als Datenstrukturen zu manipulieren ist viel sicherer und weniger Fehleranfällig als beliebige Zeichenketten als Code zu interpretieren.

Verfasst: Freitag 14. Dezember 2007, 14:59
von Vingdoloras
Hört sich interessant an... aber ich habe leider noch nie von Lisp und Scheme gehört :cry:
Vielleicht könnt ihr mich ja aufklären? :D :D :D

Verfasst: Freitag 14. Dezember 2007, 15:09
von keppla
Vingdoloras hat geschrieben:Hört sich interessant an... aber ich habe leider noch nie von Lisp und Scheme gehört
http://de.wikipedia.org/wiki/Lisp

Lisp und Scheme sind sogenannte Funktionale Programmiersprachen.
Der Grundsätzliche unterschied zu (hauptsächlich) imperativen Programmiersprachen wie Python ist, dass du nicht schreibst "tu dies, tu dass", sondern, dass du nur Funktionen schreibst, die beschreiben, was für ein resultat sie haben.
Dadurch hast du kaum feste Syntaktische konstrukte wie if oder for, da diese durch eigene Funktionen dargestellt werden, und du solche Funktionen auch
selber schreiben kannst.
Lisp wird häufig als "programmable programming language" gerühmt.
Das Ganze erfordert allerdings erstmal einiges Umdenken, von dem einiges deutliche Nachwirkungen in deinem Stil hinterlassen wird ;)

Verfasst: Freitag 14. Dezember 2007, 15:49
von Leonidas
Naja, tu-das und tu-jenes geht mit Lisp auch, denn sie sind ja "impure". D.h. du kannst sowohl funktional als auch imperativ an dein Problem rangehen. Der Unterschied ist darin, wie du auf Seiteneffekt reagierst - entweder ist eine Funktion eine Black-Box und gibt bei jedem Aufruf das gleiche zurück (Funktional) oder sie modifiziert den Zustand (imperativ), was als Seiteneffekt bezeichnet wird.

Außerdem ist LISP made with alien technology. Aber es ist hart sich da reinzudenken, ehrlich.

Wenn du magst kannst du dir die Lehrbücher SICP und HTDP ansehen oder auch Practical Common Lisp.

Verfasst: Freitag 14. Dezember 2007, 16:00
von keppla
Leonidas hat geschrieben:Naja, tu-das und tu-jenes geht mit Lisp auch, denn sie sind ja "impure".
Klar, ebenso wie man in Python funktional programmieren kann, indem man auf Nebeneffekte verzichtet. Aber der Funktionale Teil steht afaik bei Lisp deutlichst im Vordergrund.