Kurs/Haskell (2012): Difference between revisions
(litt informasjon) |
(Informasjon om Haskellkurset) |
||
Line 3: | Line 3: | ||
<b>Kursholder</b>: Kjetil Ørbekk<BR> | <b>Kursholder</b>: Kjetil Ørbekk<BR> | ||
Haskell er et '''funksjonelt programmeringsspråk'''. Funksjoner kan behandles som vanlige verdier og manipuleres på forskjellige måter. Haskell gir deg enkel syntaks for å behandle funksjoner, for eksempel med lambdaer. Dette gjør at man kan skrive kode på en helt annen måte enn i f.eks. Java og C++. Nedenfor finner du et kodeeksempel i Java og Haskell. | |||
Haskell har et '''high-tech-typesystem'''. Haskell er sterkt typet, og har mekanismer som ligner på Generics (Java)/Templates (C++) men er mer fleksible. Haskells svar på interfaces skiller mellom spesifikasjon og implementasjon av en datatype på en måte som er umulig i Java. | |||
Haskell har '''lazy evaluation'''. Det betyr at programmet ditt ikke blir kjørt før i siste liten (for eksempel når det skal skrives til skjerm). Hvis du har en liste med en milliard elementer men du trenger bare det første? Det er effektivt i Haskell. Hvis du vet hvordan Generator-patternet fungerer i objektorientert programmering, så kan du tenke deg at det fungerer på samme måte, men Haskell gir deg det helt automatisk. | |||
Interessert? Kom på kurs! :-) | |||
<code> | |||
/** Teller antall 10-ere i 'list'. */ | |||
List<Integer> numberOfTens(List<Integer> list) { | |||
List<Integer> result = new ArrayList<Integer>(); | |||
for (Integer i : list) { | |||
if (i == 10) { | |||
result.add(i); | |||
} | |||
} | |||
return result; | |||
} | |||
</code> | |||
<code> | |||
-- equalsTen er en hjelpefunksjon som sjekker om x er 10. | |||
equalsTen x = x == 10 | |||
-- numberOfTens tilsvarer Java-funksjonen ovenfor. | |||
numberOfTens list = length (filter equalsTen list) | |||
</code> |
Revision as of 12:27, 16 March 2012
Tid: Torsdag 22. mars 2012, kl. 18:15
Sted: Annonseres snart
Kursholder: Kjetil Ørbekk
Haskell er et funksjonelt programmeringsspråk. Funksjoner kan behandles som vanlige verdier og manipuleres på forskjellige måter. Haskell gir deg enkel syntaks for å behandle funksjoner, for eksempel med lambdaer. Dette gjør at man kan skrive kode på en helt annen måte enn i f.eks. Java og C++. Nedenfor finner du et kodeeksempel i Java og Haskell.
Haskell har et high-tech-typesystem. Haskell er sterkt typet, og har mekanismer som ligner på Generics (Java)/Templates (C++) men er mer fleksible. Haskells svar på interfaces skiller mellom spesifikasjon og implementasjon av en datatype på en måte som er umulig i Java.
Haskell har lazy evaluation. Det betyr at programmet ditt ikke blir kjørt før i siste liten (for eksempel når det skal skrives til skjerm). Hvis du har en liste med en milliard elementer men du trenger bare det første? Det er effektivt i Haskell. Hvis du vet hvordan Generator-patternet fungerer i objektorientert programmering, så kan du tenke deg at det fungerer på samme måte, men Haskell gir deg det helt automatisk.
Interessert? Kom på kurs! :-)
/** Teller antall 10-ere i 'list'. */
List<Integer> numberOfTens(List<Integer> list) {
List<Integer> result = new ArrayList<Integer>();
for (Integer i : list) {
if (i == 10) {
result.add(i);
}
}
return result;
}
-- equalsTen er en hjelpefunksjon som sjekker om x er 10.
equalsTen x = x == 10
-- numberOfTens tilsvarer Java-funksjonen ovenfor.
numberOfTens list = length (filter equalsTen list)