Kurs/Haskell: Difference between revisions
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
<b>Sted</b>: Ikke fastsatt ennå<<BR>> | <b>Sted</b>: Ikke fastsatt ennå<<BR>> | ||
<b>Kursholder</b>: Kjetil Ørbekk<<BR>> | <b>Kursholder</b>: Kjetil Ørbekk<<BR>> | ||
<b>Anbefalte forkunnskaper</b>: Programmering, | <b>Anbefalte forkunnskaper</b>: Programmering, 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. | De fleste programmeringsspråk er såkalte imperative språk. Man bruker variabler og operasjoner for å få datamaskinen til å gjøre det man vil. | ||
Line 28: | Line 28: | ||
* 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 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. | * 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 | * 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:15, 4 March 2009
Tid: Torsdag 19. mars 2009, kl. 18:15<
>
Sted: Ikke fastsatt ennå<
>
Kursholder: Kjetil Ørbekk<
>
Anbefalte forkunnskaper: Programmering, 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!