Kurs/Haskell: Difference between revisions
(link til slides og kildekode) |
m (11 revisions) |
||
(One intermediate revision by one other user not shown) | |||
Line 37: | Line 37: | ||
Video fra kurset: | Video fra kurset: | ||
* Del 1: [http://www.pvv.ntnu.no/~oysteini/kurs/2009-03-19-haskell/video-del1-stor.ogg stor (821 MiB)] ( | * Del 1: [http://www.pvv.ntnu.no/~oysteini/kurs/2009-03-19-haskell/video-del1-stor.ogg stor (821 MiB)], [http://www.pvv.ntnu.no/~oysteini/kurs/2009-03-19-haskell/video-del1-liten.ogg liten (99 MiB)] | ||
* Del 2: (kommer snart) | * Del 2: (kommer snart) | ||
* Del 3: (kommer snart) | * Del 3: (kommer snart) |
Latest revision as of 22:45, 5 March 2010
Tid: Torsdag 19. mars 2009, kl. 18:15<
>
Sted: EL6<
>
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 gir du ikke detaljerte instruksjoner til maskinen. Du setter verdier, og jobber med dem ved hjelp av funksjoner som kan settes sammen på utallige måter. Man forandrer aldri en variabel som har blitt satt. Dette 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!
Materiale fra kurset:
Video fra kurset:
- Del 1: stor (821 MiB), liten (99 MiB)
- Del 2: (kommer snart)
- Del 3: (kommer snart)