1 -{ extension 'xmatch' }
\r
4 function p(msg) io.write(msg..' ':rep(WIDTH-#msg)) end
\r
6 ----------------------------------------------------------------------
\r
7 p"match as an expression"
\r
8 print(match 1 with 1 -> 'ok' | 2 -> 'KO')
\r
10 ----------------------------------------------------------------------
\r
11 p "global match function"
\r
13 | x if x<10 -> return 'o'
\r
18 ----------------------------------------------------------------------
\r
19 p "global match function, multi-args"
\r
21 | x, y if x<y -> return 'increasing'
\r
22 | _, _ -> return 'decreasing'
\r
25 if cmp(1,2)=='increasing' and cmp(2,1)=='decreasing' then
\r
26 print "ok" else print "KO"
\r
29 ----------------------------------------------------------------------
\r
30 p "local match function"
\r
32 local match function x
\r
39 ----------------------------------------------------------------------
\r
40 p "global bind assignment"
\r
41 bind {a, b} = {'o', 'k'}
\r
44 ----------------------------------------------------------------------
\r
45 p "local bind assignment"
\r
48 local bind {c, {d}} = {'o', {'k'}}
\r
52 ----------------------------------------------------------------------
\r
53 p "local bind assignment scope"
\r