K
otze schrieb:
Es gibt ganz viel Syntax für Spezialfälle. Unter anderem mehrere Syntaktische Möglichkeiten, Funktionen und Argumente zu binden, etc. Ich kenn Haskell nicht perfekt, aber neben so Sachen wie funktion1.funktion2 meine ich auch sowas wie Funktion1<.>Funktion2 gesehen zu haben. Leider hatte ich nie die Chance, mich näher damit zu beschäftigen, weil Prolog dazwischen kam.
Tja, wenn du nicht weist, was ein Operator macht, dann kannst du doch leicht mittels :t (oder :type im Interpreter) die Signatur herausfinden. Auch kannst du in der Prelude.hs dir die Implementation ansehen. Du kannst dir auch neue Operatoren neben den unzaehligen vorhandenen ( !!, !, ., ...) definieren. <.> kenne ich auch nicht, aber er kann auch ein selbst definierter sein. Er ist auch nicht in Prelude.hs definiert.
teils unlogisch und noch viel schlimmer ist halt, dass man so viel mit der sprache machen kann und es deshalb auch so viel gibt, was man nicht weiß ;o)
Gerade unlogisch ist diese Sprache nun wirklich nicht. Die Leute haben sich dabei wirklich was gedacht. Nicht im Sinne von "Design by Accident". Wer sich mit den Hintergruenden beschaeftigen will, sollte sich aber auf einen Brocken Mathematik gefasst machen. Auch ist die Auswahl an Funktionen der Standardbibliothek als auch an Modulen ziemlich gross. Dort den Ueberblick zu gewinnen, braucht Zeit.
Und man lernt nie aus. Gerade eine weitere Moeglichkeit gefunden die Fibonaccifolge zu definieren: fibs = 0 : scanl (+) 1 fibs. Ich loese ab und an einige Sachen auf http://projecteuler.net/, schaue mir auch die anderen Haskell-Implementationen an und mache Zeitmessungen.