Mønstergenkendelse: Forskelle mellem versioner

Content deleted Content added
Ny side: Indenfor funktionel programmering betegner termen '''mønstergenkendelse''' (eng: ''pattern matching'') muligheden for, at passe værdier op mod mønstre. En almindelig brug af dett...
(Ingen forskel)

Versionen fra 20. jul. 2012, 15:29

Indenfor funktionel programmering betegner termen mønstergenkendelse (eng: pattern matching) muligheden for, at passe værdier op mod mønstre.

En almindelig brug af dette er ved funktionsdefinitioner, hvor funktionen kan deles op i flere tilfælde baseret på et mønster. I Standard ML kunne fakultetsfunktionen for eksempel defineres på følgende måde ved hjælp af mønstergenkendelse:

fun fact 0 = 1
  | fact n = n * fact (n-1);

Ved denne slags funktionsdefinitioner vil oversætteren vælge det første mønster der passer og eksekvere dette. Kaldes for eksempel fact 3, da checkes værdien 3 først op mod mønsteret 0 og derefter mod mønsteret n.

Mønstergenkendelse bruges ofte i sammenhæng med brugen af algebraiske datatyper, hvor det kan bruges til at differentiere imellem de forskellige tilfælde og hive værdier ud. Her ses et eksempel, der bestemmer, om et element findes i et binært søgetræ i Standard ML:

datatype itree = Leaf
               | Node of itree * int * itree

fun find _ Leaf = false
  | find v (Node(left, c, right)) =
            if v < c then find v left
       else if v > c then find v right
       else true
ItSpire
Denne it-artikel er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.