Mønstergenkendelse

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
SoftwareSpire
Denne artikel om software og programmering er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.