1
0
mirror of https://github.com/janet-lang/janet synced 2024-11-28 19:19:53 +00:00

Tweak match docstring

This commit is contained in:
sogaiu 2020-12-27 13:42:22 +09:00
parent a2c837a99c
commit ffa0d5fe45

View File

@ -1564,16 +1564,26 @@
(defmacro match (defmacro match
``` ```
Pattern matching. Match an expression x against Pattern matching. Match an expression `x` against any number of cases.
any number of cases. Each case is a pattern to match against, followed Each case is a pattern to match against, followed by an expression to
by an expression to evaluate to if that case is matched. A pattern that is evaluate to if that case is matched. Legal patterns are:
a symbol will match anything, binding x's value to that symbol. An array
will match only if all of it's elements match the corresponding elements in * symbol -- a pattern that is a symbol will match anything, binding `x`'s
x. A table or struct will match if all values match with the corresponding value to that symbol.
values in x. A tuple pattern will match if it's first element matches, and the following
elements are treated as predicates and are true. The last special case is * array -- an array will match only if all of its elements match the
the '_ symbol, which is a wildcard that will match any value without creating a binding. corresponding elements in `x`.
Any other value pattern will only match if it is equal to x.
* table or struct -- a table or struct will match if all values match with
the corresponding values in `x`.
* tuple -- a tuple pattern will match if its first element matches, and the
following elements are treated as predicates and are true.
* `_` symbol -- the last special case is the `_` symbol, which is a wildcard
that will match any value without creating a binding.
Any other value pattern will only match if it is equal to `x`.
``` ```
[x & cases] [x & cases]