-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path005.fun
More file actions
133 lines (119 loc) · 1.99 KB
/
005.fun
File metadata and controls
133 lines (119 loc) · 1.99 KB
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#This tests everything about function parameters
fun f1(a) {
print(a)
}
fun f2(a) {
a = 500
}
fun f3(a, b) {
return a + b
}
fun f4(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) {
print(a0)
print(a1)
print(a2)
print(a3)
print(a4)
print(a5)
print(a6)
print(a7)
print(a8)
print(a9)
print(a10)
print(a11)
print(a12)
print(a13)
print(a14)
print(a15)
print(a16)
print(a17)
print(a18)
print(a19)
a0 = 10
a1 = 20
a2 = 30
a3 = 40
a4 = 50
a5 = 60
a6 = 70
a7 = 80
a8 = 90
a9 = 100
a10 = 110
a11 = 120
a12 = 130
a13 = 140
a14 = 150
a15 = 160
a16 = 170
a17 = 180
a18 = 190
a19 = 200
}
fun f6(a) {
print(a)
if(a != 0) {
f6(a-1)
}
}
fun main() {
#basic parameter passthrough - should print 1
f1(1)
#local scoping for parameter - should print 2
b = 2
f2(b)
print(b)
#local scoping for parameter - should print 3
a = 3
f2(a)
print(a)
# function as a parameter - should print 6
print(f3(1, f3(2, 3)))
# function as a parameter - should print 10
print(f3(1, f3(2, f3(3, 4))))
# preservation of parameters - should print 1 to 20 twice
a0 = 1
a1 = 2
a2 = 3
a3 = 4
a4 = 5
a5 = 6
a6 = 7
a7 = 8
a8 = 9
a9 = 10
a10 = 11
a11 = 12
a12 = 13
a13 = 14
a14 = 15
a15 = 16
a16 = 17
a17 = 18
a18 = 19
a19 = 20
f4(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
print(a0)
print(a1)
print(a2)
print(a3)
print(a4)
print(a5)
print(a6)
print(a7)
print(a8)
print(a9)
print(a10)
print(a11)
print(a12)
print(a13)
print(a14)
print(a15)
print(a16)
print(a17)
print(a18)
print(a19)
#local scoping for recursive parameters - should print 5 to 0
f6(5)
}
#Comment with no newline at end