Kurs/Haskell

From Programvareverkstedet
Revision as of 01:15, 4 March 2009 by Oysteini (talk | contribs)

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!