Learn You a Haskell for Great Good!

Haskell ist eine rein funktionale Programmiersprache, das heißt, sie unterscheidet sich von imperativen Sprachen in Aussehen und Arbeitsweise. Bei einer imperativen Sprache schreibt der Programmierer Befehle in ein Programm, welches dann von einem Computer ausgeführt wird, genau so wie es der Programmierer geschrieben hat. Man muss dem Rechner also mitteilen was man genau möchte. Bei einer funktionalen Sprache werden Programme durch Funktionen (im mathematischen Sinne) erzeugt.

Ein Beispiel:

In einer imperativen Sprache setzt man Variable a = 5 und b = 7, rechnet damit, verzweigt an einer if-Struktur und gibt ein Ergebnis aus.

In einer funktionalen Sprache beschreibt man was etwas ist. Also zum Beispiel, dass die Fakultät einer Zahl das Produkt aller natürlichen Zahlen von 1 bis zu dieser Zahl ist. Man beschreibt also eine mathematische Funktion, wobei die Fakultät eben diese hier wäre:

Learn You a Haskell for Great Good

„Learn You a Haskell for Great Good“ ist eine Art Tutorial/Buch zum Erlernen der Sprache Haskell. Da man normalerweise nicht schnell mit so einer Sprache in Berührung kommt, ist die Umstellung etwas komplizierter, vor allem weil man anders denken muss. Mit diesem Tutorial ist man aber gut beraten und kann schnell erste Ergebnisse erzielen! Schön gemacht!

Wer also etwas Horizonterweiterung betreiben möchte, dem sei Haskell ans Herz gelegt :).

2 Gedanken zu „Learn You a Haskell for Great Good!

  • 14. Februar 2010 um 18:03
    Permalink

    So einfach wie in deinem Beispiel kann man dies leider nicht sagen. In Haskell gibt es genauso Kontrollstrukturen (If-else und Guarded Commands). Variablen gibt es zudem auch, nur werden diese fest zugewiesen und ändern ihren Wert zur Laufzeit nie.
    Die Fakultät lässt sich sehr gut in Haskell über primitive Rekursion definieren (genau wie in imperativen Sprachen) oder über die in Haskell vorhandene Möglichkeit Listen einfach zu erzeugen und der Funktion prod.

    Antworten
  • 15. Februar 2010 um 13:08
    Permalink

    Ich wollte ja keine Einführung in Haskell geben, sondern auf das Tutorial verweisen. Du hast mit dem gesagten natürlich recht. Das habe ich ja auch nicht verneint ;).

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.