Einstieg in Haskell



  • Ich bin auch gerade dabei Haskell zu lernen und die Sprache ist wirklich klasse 🙂

    Was ich cool finde sind unendliche Listen wie

    [1..] -- alle natürlichen Zahlen
    

    .



  • The-Kenny schrieb:

    In den Nachrichtenkanaelen in denen ich mich ueber Haskell informiert habe, wurde Real World Haskell immer sehr hoch gepriesen. Ich habe Haskell auch damit gelernt und kann es nur weiterempfehlen.

    Das habe ich auch im Regal stehen, ich bin allerdings noch nicht dazugekommen, es zu lesen. Nur gelegentlich habe ich Kleinigkeiten nachgesehen - z.B., um map und fold in Delphi zu implementieren. Anonyme Methoden regeln 🙂

    Wenn ich mal wieder einen halben Monat Zeit habe, werde ich das Buch auch mal lesen; ich finde Haskell überaus interessant und nützlich. Mein To-Do-Bücherbrett ist ohnehin ganz gut beladen, größtenteils allerdings mit Belletristik 😃



  • Ich musste Haskell in der Uni lernen und finde die Sprache ganz schick um funktionale Programmierkonzepte zu erlernen. Uns wurde als Buch "The Craft of Functional Programming" von Simon Thompson ans Herz gelegt. Das Buch kann ich empfehlen, auch wenn es nicht ganz billig ist. Interessant an Haskell ist auch noch, dass es eine der wenigen funktionalen Programmiersprachen ist, die auch noch in der Praxis eingesetzt wird.



  • Es gibt viele gute Quellen zu Haskell, hier ist ein weiteres Tutorial: Learn You a Haskell for Great Good!. Was ich an ihr mag: das Bunte ...

    Ich kenne mich noch nicht sehr gut aus, aber bereits einfache Beispiele haben mich schon recht fasziniert.

    Ja! Ich habe auch angefangen, mich durch Monads durchzuarbeiten (unabdingbar) und habe auch eine neue Moeglichkeit der Fehlerbehandlung entdeckt (click). Gewiss kann man das an gegebener Stelle auch in anderen Programmiersprachen nachbilden, aber auf die Idee waere ich z.B. in C++ nie gekommen. (Auch werden manche sagen ... alter Hut ... nichts besonderes ... geht viel einfacher in ??? ... aber ich denke an komplexere Beispiele 🙂 )



  • @Nexus: Wir hatten Haskell jetzt im 1. und 2.Semester und eigentlich ist diese Prog'Lang ganz super, wenn du magst kann ich dir ein eBook geben:

    "Addison Wesley Haskell The Craft Of Functional Programming"

    [Edit]:
    Achja evtl. sollte ich hier noch meine eigene Meinung über Haskell schreiben, kurz und knackig.
    Man kann ziemlich simple die verschiedensten Algorithmen konzipieren. Hier Zwei super Beispiele

    Quicksort in "einer" Zeile:

    qsort :: Ord a => [a] -> [a]
    qsort []     = []
    qsort (x:xs) = qsort kleiner ++ [x] ++ qsort groesser
                   where
                     kleiner  = [y | y <- xs, y < x]
                     groesser = [y | y <- xs, y >= x]
    

    Und noch toller PowerSet (Potenzmenge):

    powerset [] = [[]]
    powerset (x:xs) = powerset xs ++ map (x:) (powerset xs)
    

    Versucht das mal in Java oder C++ 😉

    Weitere Pluspunkte sind sicherlich, dass Arbeiten mit Curry-Funktionen, Übergeordneten-Funktionen und die Lazy-Evaluation.

    Eine andere funktionale Prog'Lang die ich auch recht interessant fand war Scheme, allerdings seeeeeehrrr klammerlastig.

    Lg Tobi



  • T0bi schrieb:

    Und noch toller PowerSet (Potenzmenge):

    powerset [] = [[]]
    powerset (x:xs) = powerset xs ++ map (x:) (powerset xs)
    

    Versucht das mal in Java oder C++ 😉

    Benötigt man in diesen Sprachen auch gar nicht, da man dort ein ganz anderes Programmierparadigma verfolgt. Daher ist das Beispiel für einen Vergleich eher ungeeignet.



  • Hm stimmt schon, wir hatten aber mal eine Aufgabe bei der es darum ging alle möglichen Subsequenzen eines Wortes zu bestimmen, dazu sollten wir einen Algorithmus einmal in Haskell und einmal in Java gestallten. In beiden Fällen hatte ich es mit Powerset lösen wollen 😕

    Lg Tobi



  • Ich bin sicher, wenn man das eBook moechte ohne zu bezahlen, dann findet man das allein im Netz. Das Buch scheint sein Geld wert zu sein. Der Autor scheint dich nicht bescheissen zu wollen, also bescheisse auch den Autor nicht. 🙂



  • @T0bi
    😡
    Poste hier bitte keine Links zu irgend welchen Downloads von urheberrechtlich geschützten eBooks! Nicht nur schadest du dem Autor, auch das Forum wird gefährdet, ganz zu schweigen von rechtlichen Konsequenzen für dich (Stichwort: Abmahnung!). Also denk nach und lass so etwas sein.



  • Entschuldige hab für ein kleinen Augenblick vergessen in welchen Forum ich verkehre. Wird nicht wieder vorkommen.

    Lg Tobi



  • Benötigt man in diesen Sprachen auch gar nicht, da man dort ein ganz anderes Programmierparadigma verfolgt. Daher ist das Beispiel für einen Vergleich eher ungeeignet.

    Es geht eigentlich nie um Sprachen, sondern um die zu loesenden Probleme. Und dem Problem ist es egal, durch welche Sprache es geloest wird. Programmierparadigma hin oder her, wenn sowas benoetigt wird, dann wirst du es auch in Java implementieren.

    @T0bi: Deine Funktion powerset ist mit der Funktion subsequence aus dem Modul List identisch.



  • Und jetzt rat' doch mal wieso sie identisch sind ...



  • T0bi schrieb:

    Und jetzt rat' doch mal wieso sie identisch sind ...

    Du hast abgeschrieben ... *kopfschuettel*



  • Ich hau dich gleich 😉

    Beispiel: Bilde alle möglichen Subsequenzen von ABC.

    P( ABC ) = { { }, { A }, { B }, { C }, { AB }, { AC }, { BC }, { ABC } }

    Wie du siehst ListOfSubsequences == PowerSet.

    Lg Tobi



  • Haskell Rockt! soviel ist mal klar 🙂

    Aber sei vorsichtig, sonst willste garnicht mehr zurück in die Mainstream sprachen 🙂



  • http://book.realworldhaskell.org

    realworldhaskell, ein oxymoron


  • Mod


Anmelden zum Antworten