Зіставляння із взірцемЗіставляння із взірцем або зіставлення із шаблоном (англ. pattern matching) — метод аналізу та опрацювання структур даних у мовах програмування, заснований на виконанні певних інструкцій залежно від збігу досліджуваного значення з тим чи іншим взірцем (шаблоном), яким може бути константа, предикат, тип даних або інша конструкція, підтримувана мовою. Зазвичай є можливість задати більше одного взірця та пов'язаної з ним дії. Зіставляння із взірцем часто зустрічається у функційних мовах програмування, наприклад, мовах сімейства ML та Haskell, зокрема у вигляді вартових виразів. Зразки послідовностей (наприклад, текстовий рядок) можна зіставляти з регулярними виразами. Порівняння з точним значеннямНайпростішим варіантом є зіставляння з константою. У цьому разі зіставляння із взірцем еквівалентне умовному оператору або конструкції Розглянемо, наприклад, обчислення логічного заперечення. В OCaml : let neg x =
match x with
| false -> true
| true -> false
;;
Тут значення після символа let neg x =
if x = false then true
else false
;;
Використання внутрішньої структури об'єктаОбчислення суми списку: let rec sum l =
match l with
| [] -> 0
| x :: xs -> x + (sum xs)
;;
У цьому прикладі аргумент функції Алгебричні типи данихЯк взірець може застосовуватися конструктор значення типу: type animal = Dog of string | Cat of string ;;
let say x =
match x with
| Dog (x) -> x ^ "says 'woof'"
| Cat (x) -> x ^ "says 'meow'"
;;
Зіставляння з рядкомМови з розвиненими засобами опрацювання тексту, такі як AWK та SNOBOL, підтримують зіставляння з регулярним виразом. Приклад на AWK — підрахунок кількості входжень слів foo або bar: /foo|bar/ { foobar++ }
END { print foobar }
|
Portal di Ensiklopedia Dunia