Kurs/Haskell: Difference between revisions

From Programvareverkstedet
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, og kjekt å kunne litt rekursjon
<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 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: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!