ocaml.org icon indicating copy to clipboard operation
ocaml.org copied to clipboard

Explain `as` Syntax for Aliasing in Pattern Matching

Open sabine opened this issue 1 year ago • 0 comments

OCaml provides Syntax for defining an alias for some parameters you pattern match on.

For example:

let f ((x, y) as arg) = ...

let f ({a;b} as arg2) = ...

let f = function Some _ as opt -> opt | None -> Some 42;;

So, it's possible to both pattern match on a function parameter and give the parameter a name.

Relevant documents where this needs to be explained:

  • https://github.com/ocaml/ocaml.org/blob/main/data/tutorials/language/0it_00_values_functions.md
  • https://github.com/ocaml/ocaml.org/blob/main/data/tutorials/language/0it_01_basic_datatypes.md
  • https://v2.ocaml.org/releases/5.1/htmlman/patterns.html#sss:pat-alias (Alias patterns)

sabine avatar Dec 12 '23 16:12 sabine