summaryrefslogtreecommitdiff
path: root/test/matchnest.myr
blob: 3572abd7e4a5c623f763bafefbddcdb62778e55c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
use std

type a = struct
	x	: int
	y	: int
;;

type b = struct
	u	: a
	v	: int
;;

const main = {
	var v : b

	match ((0, 1), 2)
	| ((0, 1), 2):	std.put("a")
	| _:		std.put("f")
	;;

	match ((0, 1), 2)
	| (_, 2):	std.put("b")
	| _:		std.put("f")
	;;

	v = [.u=[.x=1, .y=2], .v=3]
	match v
	| [.u=[.x=1, .y=2], .v=3]:	std.put("c")
	| _:				std.put("f")
	;;
	match v
	| [.u=_, .v=3]:	std.put("d")
	| _:		std.put("f")
	;;


	match [[1,2], [3,4]]
	| [[1,2], [3,4]]:	std.put("e")
	| _:			std.put("f")
	;;
	match [[1,2], [3,4]]
	| [_, [3,4]]:	std.put("f")
	| _:		std.put("f")
	;;
}