Kurs/Haskell

From Programvareverkstedet
Revision as of 16:46, 17 March 2009 by Oysteini (talk | contribs) (link til rominformasjon)

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!

Plakat (Gimp-kildefil)