blob: 123bda6e01440d0327f7ffadb4c9e151836d067e (
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
46
47
|
TEMPLATE <T>
FUNCTION Max(A : T, B : T) RETURNS T
IF A > B THEN
RETURN A
ENDIF
RETURN B
ENDFUNCTION
TEMPLATE <A, B>
FUNCTION Second(First : A, Last : B) RETURNS B
RETURN Last
ENDFUNCTION
TEMPLATE <T>
FUNCTION Zero() RETURNS T
RETURN (T)0
ENDFUNCTION
TEMPLATE <T>
PROCEDURE Print(Value : T)
OUTPUT Value
ENDPROCEDURE
TEMPLATE <T>
FUNCTION Echo(Value : T) RETURNS T
RETURN Value
ENDFUNCTION
TEMPLATE <T>
OVERLOAD FUNCTION Pick(Value : T) RETURNS INTEGER
RETURN 100
ENDFUNCTION
OVERLOAD FUNCTION Pick(Value : INTEGER) RETURNS INTEGER
RETURN 200
ENDFUNCTION
OUTPUT Max<REAL>(1.5, 2.0)
OUTPUT Max<INTEGER>(Max<INTEGER>(1, 2), 3)
OUTPUT Second<INTEGER>(7, "tail")
OUTPUT Zero<REAL>()
CALL Print<REAL>(2.5)
Print<INTEGER>(9)
OUTPUT Pick(7)
OUTPUT Pick<INTEGER>(7)
OUTPUT (STRING)Echo<STRING>("chain").C_STR()
CALL Echo<STRING>("discarded")
Echo<STRING>("also discarded")
|