Leonidas hat geschrieben:Das ist eben das Buch von dem ich sprach, das Wizard-Book, in dem am Schluss eine Scheme Implementation geschrieben wird. Ist aber nicht als Buch vor dem Schlafengehen geeignet.
Mich würde dann deine Meinung zum Buch interessieren.
Ich hab mir das Buch jetzt auch zugelegt und bis Kapitel 3 durchgelesen, wenn auch nicht durchgearbeitet. Kapitel 4 habe ich mir dann nur noch zum Teil angetan, Kapitel 5 nur noch quergelesen. Wer auch mal drin schmökern will, auf Englisch hier:
http://mitpress.mit.edu/sicp/full-text/book/book.html. Ich halte die deutsche Übersetzung sowieso für ziemlich schlecht. Insbesondere der Versuch, auch die Bezeichner in den Programmen zu übersetzen, der nicht immer konsequent umgesetzt wurde, hat zu vielen Fehlern in den Programmtexten geführt.
Ansonsten ist das Buch interessant. Es zeigt doch neue Aspekte des Programmierens, z.T. auch mit sehr interessanten Beispielanwendungen (z.B. symbolische Differentialrechnung, elektrische Schaltkreise etc.). Ob hierzu Scheme aber die ideale Sprache ist? An die polnische Notation gewöhnt man sich ja noch recht schnell, aber diese ganzen Klammern. Da verliert man schnell den Überblick, was wohin gehört. Deshalb habe ich mir den Schluss auch nicht mehr angetan. Ich glaube, man hätte das meiste auch gut mit Python darstellen können.
OCaml halte ich bei dem, was ich bisher von diesen Sprachen weiß, für einfacher und mit verschiedenen hilfreichen Features: Pattern-Matching, OOP, die übersichtlichere Syntax und für den, der es braucht, Typsicherheit und den wohl effektiveren Compiler.
Die Frage ist aber
veers hat geschrieben:Mein Problem mit funktionalen Sprachen ist vor allem das ich nicht weiss wann ich sie verwenden sollte. Scheme habe ich mal etwas im zusammenhang mit Gimp gebraucht. Aber das war es dann auch schon mit praktischer anwendung. Naja auch als vim Benutzer werde ich mir wohl mal die Zeit gönnen und Lisp lernen. Und sei es nur aus reiner Freude am lernen.
Am ehesten könnte ich mir dafür noch irgendwelche mathematischen Anwendungen vorstellen. Dafür wäre es dann aber wohl sinnvoller, eine komplett funktionale Sprache wie Haskell zu verwenden, um side-effects sicher auszuschließen oder um es mit birkenfelds Worten zu sagen:
birkenfeld hat geschrieben:Und der Gedanke: wenn ich mir schon eine neue Programmiersprache anschaue und evtl. sogar aneigne, dann sollte es eine ganz radikal andere sein, die in ihrem Gebiet ebenso herausragend ist wie Python auf seinem.
Langer Rede kurzer Sinn: Ich werde wohl weiter bei Python bleiben. Es gibt glaube ich kaum Möglichkeiten, schneller lauffähige Programme zu bekommen. Wenn man sich mal mit funktionaler Programmierung austoben will, reicht dazu wohl Python ebenfalls aus. Und wenn's dann wirklich einmal schneller laufen muss: C.
MfG
HWK