Kurs/Haskell: Difference between revisions
(lagt inn orbekks beskrivelse av kurset) |
No edit summary |
||
Line 29: | Line 29: | ||
* I andre del blir det mer avansert Haskell. Det blir mye rekursjon, veldig mange funksjoner og gøyale ting som heter typeklasser og abstrakte datatyper. | * I andre del blir det mer avansert Haskell. Det blir mye rekursjon, veldig mange funksjoner og gøyale ting som heter typeklasser og abstrakte datatyper. | ||
* Siste del blir full av det som er virkelig gøy. Jeg skal prøve å vise frem noe som kalles Monads (kan gjerne forveksles med Marsvin) og lat evaluering. Det finnes mange typer Marsvin, og de kan være enten late eller ivrige. Mye om det i denne delen! | * Siste del blir full av det som er virkelig gøy. Jeg skal prøve å vise frem noe som kalles Monads (kan gjerne forveksles med Marsvin) og lat evaluering. Det finnes mange typer Marsvin, og de kan være enten late eller ivrige. Mye om det i denne delen! | ||
---- | |||
__NOTOC__ | __NOTOC__ |
Revision as of 01:14, 4 March 2009
Tid: Torsdag 19. mars 2009, kl. 18:15<
>
Sted: Ikke fastsatt ennå<
>
Kursholder: Kjetil Ørbekk<
>
Anbefalte forkunnskaper: Programmering, og kjekt å kunne litt rekursjon
De fleste programmeringsspråk er såkalte imperative språk. Man bruker variabler og operasjoner for å få datamaskinen til å gjøre det man vil.
Haskell er et rent funksjonelt programmeringsspråk. I funksjonell programmering forteller du ikke datamaskinen hvordan den skal gjøre noe, du forklarer bare hva resultatet skal være. Det er bedre og enklere på alle måter<<FootNote(Hvis du er uenig kan vi slåss etter kurset :-))>>.
Her er et eksempel på to programmer som summerer alle tallene fra 1 t.o.m. 42:
I et imperativt språk:
total = 0; for (int i = 0; i <= 42; i++) total = total + i;
I Haskell:
total = sum [1..42]
Hvis du synes dette høres interessant ut, må du gjerne komme på kurset. Det kommer til å være tre deler:
- I første del skal jeg forklare mer om funksjonell programmering, hvorfor det er verdt å lære seg, og vise hvordan man kommer i gang med Haskell.
- I andre del blir det mer avansert Haskell. Det blir mye rekursjon, veldig mange funksjoner og gøyale ting som heter typeklasser og abstrakte datatyper.
- Siste del blir full av det som er virkelig gøy. Jeg skal prøve å vise frem noe som kalles Monads (kan gjerne forveksles med Marsvin) og lat evaluering. Det finnes mange typer Marsvin, og de kan være enten late eller ivrige. Mye om det i denne delen!