initial stage...
[yu.git] / design / concept.lua
blobd1086e9b30d61f241f4a5e68a1145d53a2ebc2e4
1 local tree1:= new QuadTree<Sprite>
3 local list2:= new List<number>
5 list2.first
7 class List<T>
9 func add<T>(a:T,b:T)->T
10 return a+b
11 end
14 func add<T>(a,b:T)->T
16 add(5,2)
18 => lift
19 1. a->5-> number => add<number>(a,b:number)->number
20 2. b?->2 => yes
21 3. number+number?->number => yes
22 4. validated
25 class Stack<T>
26 field head:StackNode<T>
28 method push(v:T)
29 local nn:=new StackNode<T>{value=v,prev=head}
30 head=nn
31 end
33 method pop()->T
34 local n:=head
35 head=head.prev
36 return n.value
37 end
38 end
40 class StackNode<T>
41 field prev:StackNode<T>
42 field value:T
43 end
46 class StackCounted<T> extends Stack<T>
47 field count#
49 inherit push(v:T)
50 end
52 inherit pop
53 end