-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsidang_putus.gr
137 lines (108 loc) · 3.14 KB
/
sidang_putus.gr
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
134
135
136
137
// Hak Cipta (c) 2021 Adam Notodikromo.
// Hak cipta dilindungi undang-undang.
// Penggunaan tunduk pada aturan lisensi.
sidang("Kata kunci `putus`", fn () {
ia("akan menjadi masalah eksekusi jika dipanggil diluar iterasi", fn () {
tuntut coba {
putus
} tahan (e) {
tuntut e itu MasalahEksekusi
tuntut e.pesan().berisi?("`putus` tidak dimungkinkan karena tidak sedang dalam iterasi")
benar
} == benar
})
ia("dapat memutus iterasi `selama`", fn () {
ada deret = []
ada i = 0
selama (i < 100) {
deret += [i]
i += 1
jika (i == 5) {
putus
deret += [12345] // tidak ditambahkan!
}
}
tuntut deret == [0, 1, 2, 3, 4]
})
ia("dapat memutus iterasi `dari`", fn () {
ada deret = []
dari (ada i = 0; i < 100; i += 1) {
deret += [i]
jika (i == 5) {
putus
deret += [12345] // tidak ditambahkan!
}
}
tuntut deret == [0, 1, 2, 3, 4, 5]
})
ia("dapat memutus iterasi `selama` yang selalu `benar`", fn () {
ada deret = []
ada i = 0
selama (benar) {
deret += [i]
i += 1
jika (i == 5) {
putus
deret += [12345] // tidak ditambahkan!
}
}
tuntut deret == [0, 1, 2, 3, 4]
})
ia("dapat memutus iterasi `dari` yang selalu `benar`", fn () {
ada nilaiLain = fn () {
ada d = []
dari (ada i = 0; benar; i += 1) {
d += [i]
jika (i == 5) {
putus
d += [12345] // tidak ditambahkan!
}
}
d
}
tuntut nilaiLain() == [0, 1, 2, 3, 4, 5]
})
ia("dapat memutus iterasi dari fungsi pengiterasi", fn () {
ada iterasikan = fn (x, fnPengiterasi) {
dari (ada i = 0; i < x.panjang(); i += 1) {
fnPengiterasi(x[i])
}
}
ada deret = []
iterasikan([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], fn (i) {
deret += [i]
jika (i == 5) {
putus
deret += [12345] // tidak ditambahkan!
}
})
tuntut deret == [1, 2, 3, 4, 5]
})
ia("hanya memutus iterasi paling dekat", fn () {
ada deret = []
dari (ada i = 0; i < 3; i += 1) {
deret += [i]
dari (ada j = i; j < 3; j += 1) {
deret += [j]
putus
deret += [12345] // tidak ditambahkan!
}
}
tuntut deret == [0, 0, 1, 1, 2, 2]
deret = []
tuntut deret.kosong?()
ada i = 0
selama (i < 3) {
ada j = i
deret += [i]
selama (j < 3) {
deret += [j]
j += 1
putus
deret += [12345] // tidak ditambahkan!
}
i += 1
}
tuntut deret == [0, 0, 1, 1, 2, 2]
})
})