aboutsummaryrefslogtreecommitdiff
path: root/test/minmax.tm
blob: a0f0640fa2f67094aab80a2f7eec8d9a9347e723 (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

struct Foo(x:Int, y:Int):
	func len(f:Foo->Num):
		return Num.sqrt(Num(f.x*f.x + f.y*f.y))!

func main():
	>> 3 _min_ 5
	= 3
	>> 5 _min_ 3
	= 3

	>> Foo(5, 1) _min_ Foo(5, 999)
	= Foo(x=5, y=1)

	>> Foo(5, 999) _min_.x Foo(5, 1)
	= Foo(x=5, y=999)

	>> Foo(999, 1) _min_.y Foo(1, 10)
	= Foo(x=999, y=1)

	>> Foo(-999, -999) _max_.len() Foo(10, 10)
	= Foo(x=-999, y=-999)


	>> foos := [Foo(5, 1), Foo(5, 99), Foo(-999, -999)]
	>> (_max_: foos)!
	= Foo(x=5, y=99)