ppx_pattern_guardversion

ppx_pattern_guard: ppx extension for pattern guard

Pattern guards in OCaml

This ppx adds pattern guards to OCaml. This is inspired by ocaml-patterns, an old CamlP4 extension for pattern guards, but is an independent implementation.

Pattern guard `]>guards< guard%[ when

Pattern guard is an extension of OCaml guard (or boolean guard) when e in match, function and try cases. (Do not be confused with guards (boolean guards) and pattern guards.)

While when e only takes a boolean expression e to have an additional test to a case, when [%guard let p = e] can take a pattern match: if e's value matches with the pattern p, the case is selected, and the variables in the pattern p are bound in the case action, the right hand side of ->. If the value does not match, the case is skipped.

In [%guard <guards>], pattern guards (let p = e) and boolean guards (e) can be sequenced like [%guard let y = f x;; p(y)]. They are tested in their appearence order. The bound variables in pattern guards can be used in the later pattern guards and boolean guards, in addition to the case action.

Example

match e with
| (x, y) when [%guard let w = x + y;; w = 5] -> prerr_endline "3"
Published
Maintainerjun.furuse@gmail.com
Dependencies
Source [http] https://github.com/ocaml/opam-source-archives/raw/main/ppx_pattern_guard-1.0.0.tar.gz
sha256=a04bb4dd847aba36b43cdb1c10aa31331df626eaec6fe29236cb1267cb96cab0
md5=176b8c2d67669c436a77531815282b6e
Edithttps://github.com/ocaml/opam-repository/tree/master/packages/ppx_pattern_guard/ppx_pattern_guard.1.0.0/opam
No package is dependent