Omdat ik mijn horizon wat wil verbreden wil ik graag een functionele taal leren. Via de zig van ons aller grote vriend MBravenboer kwam ik terecht op de website vn haskell.
Ik erger me echter aan de kwaliteit van de tutorials. De tutorials lijken stuk voor stuk geschreven voor mensen die bekend zijn met functioneel programmeren. Daarnaast heb ik nog geen tutorial gevonden die uiteindelijk iets maakt wat je ook echt uit kan voeren. Allemaal gaan ze er van uit dat je alleen maar functies maakt. Ergens zul je toch moeten starten...:? een main functie of zo ?
Een van de eerste stukken code die genoemd worden in de tutorial op de site van haskell zelf is het volgende:
De eerste regel is een type beschrijving... Hoewel ik het niet helemaal begrijp kan ik daar nog bij mee komen.
De tweede regel definieerd dat de fringe van en blad gelijk is aan de array van dat blad of zo?
De derde regel legt uit hoe de takken afgehandeld moeten worden...
Klop dit een beetje?
Wat doet de bovenstaande code? retourneert íe in pre-order of in postorder? Hoe had ik dat kunnen zien?
Is tree in haskell een standaardtype, of is dat (impliciet) voor deze tutorial in elkaargesmurft?
-so many questions, so little answers-
Ik erger me echter aan de kwaliteit van de tutorials. De tutorials lijken stuk voor stuk geschreven voor mensen die bekend zijn met functioneel programmeren. Daarnaast heb ik nog geen tutorial gevonden die uiteindelijk iets maakt wat je ook echt uit kan voeren. Allemaal gaan ze er van uit dat je alleen maar functies maakt. Ergens zul je toch moeten starten...:? een main functie of zo ?
Een van de eerste stukken code die genoemd worden in de tutorial op de site van haskell zelf is het volgende:
Ik snap niet wat hier nu gebeurt. De tutorial gaat er niet verder op in...With this example we have defined a type sufciently rich to allow dening some interesting (recursive) functions that use it. For example, suppose we wish to define a function fringe that returns a list of all the elements in the leaves of a tree from left to right. It's usually helpful to write down the type of new functions first; in this case we see that the type should be Tree a -> [a].
That is, fringe is a polymorphic function that, for any type a, maps trees of a into lists of a. A suitable definition follows:
code:
1 2 3 fringe :: Tree a -> [a] fringe (Leaf x) = [x] fringe (Branch left right) = fringe left ++ fringe right
De eerste regel is een type beschrijving... Hoewel ik het niet helemaal begrijp kan ik daar nog bij mee komen.
De tweede regel definieerd dat de fringe van en blad gelijk is aan de array van dat blad of zo?
De derde regel legt uit hoe de takken afgehandeld moeten worden...
Klop dit een beetje?
Wat doet de bovenstaande code? retourneert íe in pre-order of in postorder? Hoe had ik dat kunnen zien?
Is tree in haskell een standaardtype, of is dat (impliciet) voor deze tutorial in elkaargesmurft?
-so many questions, so little answers-
Localhost, sweet localhost