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