FB18 - Das Forum für Informatik

fb18.de / Off-Topic / Hard- und Softwarefragen

Haskell

Haskell 2009-10-19 20:10
Fred
Haben wir tatsächlich noch keinen Haskell-Thread? [3]
Ich benutze Haskell hauptsächlich als Horizonterweiterung und Gehirnjogging. Was macht ihr so interessantes in Haskell?

Zwei Beispiele, die anhand eines Vergleichs mit C demonstrieren, warum ich Haskell super finde:
/* C-Funktion akzeptiert nur C-Strings */ int len(char s[]) {     int len = 0;     while (s[len]) ++len;     return len; } -- Haskell-Version akzeptiert dagegen alle Listen len = foldr (const (+1)) 0 /* C-Funktion akzeptiert nur C-Strings    und verändert das Array in-place */ void rev(char s[]) {     int n = len(s);     int i, k;     for (i = 0, k = n-1; i < k; ++i, --k)     {         char temp;         temp = s[i];         s[i] = s[k];         s[k] = temp;     } } -- Haskell-Version akzeptiert dagegen alle Listen -- und lässt die Original-Liste unverändert rev = foldl (flip (:)) [] Das Schreiben eines korrekten Quicksort in C war mir jetzt zu aufwändig, daher an dieser Stelle nur die legendäre Haskell-Version:
sort [] = [] sort (pivot:rest) = sort (filter (< pivot) rest)                  ++ pivot                   : sort (filter (> pivot) rest) Ja, ich weiß, dass das Pivot-Element nicht günstig gewählt wird. Aber der Code ist einfach wunderschön!

Eine kostenlose Einführung in Haskell gibt es als ebook.

RE: Haskell 2009-10-20 14:17
TieKei
Gerüchten zur Folge soll sowas ja in SE3 FP gemacht werden?

RE: Haskell 2009-10-20 15:54
Anonymer User
Gerüchten zur Folge soll sowas ja in SE3 FP gemacht werden?

nicht direkt .. haskell ist zwar auch eine rein funktionale programmiersprache, die auf dem lambda kalkül basiert, ist aber von der syntax verschieden.
Durch das Modul FP wird der funktionale programmierstil gelehrt, jedoch nicht direkt die sprache haskell.

RE: Haskell 2009-10-20 18:00
Fred
haskell […] ist aber von der syntax verschieden.
Nicht nur von der Syntax, Haskell ist z.B. im Gegensatz zu LISP statisch getypt, und die Auswertungsstrategie ist auch eine andere.