Noc has control flow thanks to the pattern matching with the case combinator. With control flow we can have a particular order for the expressions and the pattern matching allows to match to some patterns like ["john"]
or [_]
:
"john"
["john"] ["you are john!"]]
[["you are not john!"]]
[[_] [case print ]
"you are john!"
The [_]
pattern run the default action (otherwise), it matches any pattern.
Example: (if combinator)
Source: std/bool.noc
def if = {
[
[[True] [swap pop unquote]]
[[False] [pop unquote]]case
] }
load std:bool
def main = {
"else" print] ["then" print] True if
[ }