Pattern Matching
Novum supports pattern-based binding and match expressions.
Wildcard
match value {
_ => 0
}
Identifier pattern
match value {
x => x
}
Literal patterns
match value {
0 => "zero"
1 => "one"
_ => "other"
}
Tuple patterns
match pair {
(x, y) => x + y
_ => 0
}
Enum variant patterns
Unit variant:
match color {
Color.Green => 1
_ => 0
}
Payload variant:
match result {
Result.Ok(value) => value
Result.Err(message) => print(message)
}
Pattern parser support includes qualified enum paths such as Color.Green and payload patterns such as Result.Ok(value).
List patterns
List-pattern support is part of the current language implementation and is intended for destructuring list values. The exact accepted syntax should follow the parser/tests shipped with the current revision.