trackler 2.2.1.173 → 2.2.1.174
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/ballerina/README.md +26 -5
- data/tracks/ballerina/config.json +12 -0
- data/tracks/ballerina/docs/ABOUT.md +1 -2
- data/tracks/ballerina/docs/LEARNING.md +1 -1
- data/tracks/common-lisp/config.json +14 -14
- data/tracks/erlang/config.json +244 -88
- data/tracks/erlang/docs/ABOUT.md +6 -4
- data/tracks/erlang/exercises/bracket-push/README.md +45 -0
- data/tracks/erlang/exercises/bracket-push/rebar.config +30 -0
- data/tracks/erlang/exercises/bracket-push/src/bracket_push.app.src +9 -0
- data/tracks/erlang/exercises/bracket-push/src/bracket_push.erl +7 -0
- data/tracks/erlang/exercises/bracket-push/src/example.erl +15 -0
- data/tracks/erlang/exercises/bracket-push/test/bracket_push_tests.erl +55 -0
- data/tracks/idris/config.json +1 -0
- data/tracks/rust/docs/ABOUT.md +12 -4
- data/tracks/rust/exercises/acronym/tests/acronym.rs +6 -0
- data/tracks/rust/exercises/etl/src/lib.rs +4 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: becd82b348e1141be2f222f88cdd825dc8cd9ae0
|
4
|
+
data.tar.gz: 46a27ed81af03d55eb64230f5f67514014d89d3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 76069557c80d5a3fa8528b51b6c17466501c9a0029a8561ac37171020a02943ffaf59175e24b2c34a09e0e7ef5417195440887449d2b195e53a8ab2b6af52cfa
|
7
|
+
data.tar.gz: da5f3990e6cac62eb741efc01e7be42cfb3e5130423c7ba5dad5821a471e66dfff3b9c8a755b903cfdf7a45b2f74ddd00ee620f283e13a337df928d038afece9
|
data/lib/trackler/version.rb
CHANGED
data/tracks/ballerina/README.md
CHANGED
@@ -2,12 +2,11 @@
|
|
2
2
|
|
3
3
|
![build status](https://travis-ci.org/exercism/ballerina.svg?branch=master)
|
4
4
|
|
5
|
-
Exercism exercises in Ballerina.
|
5
|
+
Exercism exercises in Ballerina. [Ballerina](https://ballerina.io/) is a compiled, transactional, statically and strongly typed programming language with textual and graphical syntaxes. Ballerina incorporates fundamental concepts of distributed system integration into the language and offers a type-safe, concurrent environment to implement microservices with distributed transactions, reliable messaging, stream processing, and workflows.
|
6
6
|
|
7
7
|
## Setup
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
You can install Ballerina by following the Ballerina [installation guide](https://ballerina.io/learn/getting-started/).
|
11
10
|
## Contributing
|
12
11
|
|
13
12
|
Thank you so much for contributing! :tada:
|
@@ -25,7 +24,29 @@ At the most basic level, Exercism is all about the tests. You can read more abou
|
|
25
24
|
Test files should use the following format:
|
26
25
|
|
27
26
|
```
|
28
|
-
|
27
|
+
import ballerina/test;
|
28
|
+
import ballerina/io;
|
29
|
+
|
30
|
+
any[] outputs = [];
|
31
|
+
int counter = 0;
|
32
|
+
|
33
|
+
// This is the mock function which will replace the real function
|
34
|
+
@test:Mock {
|
35
|
+
packageName: "ballerina.io",
|
36
|
+
functionName: "println"
|
37
|
+
}
|
38
|
+
public function mockPrint(any... s) {
|
39
|
+
outputs[counter] = s[0];
|
40
|
+
counter++;
|
41
|
+
}
|
42
|
+
|
43
|
+
@test:Config
|
44
|
+
function testFunc() {
|
45
|
+
// Invoking the main function
|
46
|
+
main();
|
47
|
+
test:assertEquals("Hello, World!", outputs[0]);
|
48
|
+
}
|
49
|
+
|
29
50
|
```
|
30
51
|
|
31
52
|
## Opening an Issue
|
@@ -48,7 +69,7 @@ Before submitting your pull request, you'll want to verify the changes in two wa
|
|
48
69
|
All the tests for Ballerina exercises can be run from the top level of the repo with
|
49
70
|
|
50
71
|
```
|
51
|
-
|
72
|
+
sh run_ballerina_tests.sh
|
52
73
|
```
|
53
74
|
|
54
75
|
For the Exercism-specific linting, please see [the documentation](https://github.com/exercism/docs/blob/master/language-tracks/configuration/linting.md).
|
@@ -16,6 +16,18 @@
|
|
16
16
|
"topics": [
|
17
17
|
"strings"
|
18
18
|
]
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"slug": "hello-world-service",
|
22
|
+
"uuid": "fceb7721-3d30-4aac-b4dd-573b601f6e1e",
|
23
|
+
"core": true,
|
24
|
+
"unlocked_by": null,
|
25
|
+
"difficulty": 1,
|
26
|
+
"topics": [
|
27
|
+
"strings",
|
28
|
+
"services",
|
29
|
+
"http"
|
30
|
+
]
|
19
31
|
}
|
20
32
|
]
|
21
33
|
}
|
@@ -1,2 +1 @@
|
|
1
|
-
[Ballerina](https://ballerina.io/) is a compiled, transactional, statically and strongly typed programming language with textual and graphical syntaxes. Ballerina incorporates fundamental concepts of distributed system integration into the language and offers a type
|
2
|
-
|
1
|
+
[Ballerina](https://ballerina.io/) is a compiled, transactional, statically and strongly typed programming language with textual and graphical syntaxes. Ballerina incorporates fundamental concepts of distributed system integration into the language and offers a type-safe, concurrent environment to implement microservices with distributed transactions, reliable messaging, stream processing, and workflows.
|
@@ -1 +1 @@
|
|
1
|
-
Ballerina [learn](https://ballerina.io/learn/#learning-ballerina) page contains multiple
|
1
|
+
Ballerina [learn](https://ballerina.io/learn/#learning-ballerina) page contains multiple resources you to get up to speed with the language, master the concepts and build comprehensive real-world use cases. tting-started/).
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"language": "Common Lisp",
|
3
3
|
"active": true,
|
4
|
-
"blurb": "",
|
4
|
+
"blurb": "A programmable programming language.",
|
5
5
|
"foregone": [
|
6
6
|
"accumulate",
|
7
7
|
"bank-account"
|
@@ -107,7 +107,7 @@
|
|
107
107
|
{
|
108
108
|
"slug": "rna-transcription",
|
109
109
|
"uuid": "5c215cbf-a575-42ad-9b3f-892410a63077",
|
110
|
-
"core":
|
110
|
+
"core": true,
|
111
111
|
"unlocked_by": null,
|
112
112
|
"difficulty": 1,
|
113
113
|
"topics": [
|
@@ -121,7 +121,7 @@
|
|
121
121
|
"uuid": "79a4a35c-40d6-4e2d-92a1-005c40b4f4c5",
|
122
122
|
"core": false,
|
123
123
|
"unlocked_by": null,
|
124
|
-
"difficulty":
|
124
|
+
"difficulty": 2,
|
125
125
|
"topics": [
|
126
126
|
"randomness",
|
127
127
|
"strings",
|
@@ -131,9 +131,9 @@
|
|
131
131
|
{
|
132
132
|
"slug": "word-count",
|
133
133
|
"uuid": "424ed7aa-24f3-4aec-9620-3cc9dc224166",
|
134
|
-
"core":
|
134
|
+
"core": true,
|
135
135
|
"unlocked_by": null,
|
136
|
-
"difficulty":
|
136
|
+
"difficulty": 2,
|
137
137
|
"topics": [
|
138
138
|
"control_flow_conditionals",
|
139
139
|
"control_flow_loops",
|
@@ -158,7 +158,7 @@
|
|
158
158
|
"uuid": "841641f2-16ba-4dc5-af1b-ffae5052853a",
|
159
159
|
"core": false,
|
160
160
|
"unlocked_by": null,
|
161
|
-
"difficulty":
|
161
|
+
"difficulty": 2,
|
162
162
|
"topics": [
|
163
163
|
"interfaces",
|
164
164
|
"lists",
|
@@ -172,7 +172,7 @@
|
|
172
172
|
"uuid": "d1d86b51-a3f4-4276-a18c-6db54bc8dfcc",
|
173
173
|
"core": false,
|
174
174
|
"unlocked_by": null,
|
175
|
-
"difficulty":
|
175
|
+
"difficulty": 2,
|
176
176
|
"topics": [
|
177
177
|
"interfaces",
|
178
178
|
"parsing",
|
@@ -196,7 +196,7 @@
|
|
196
196
|
"uuid": "5c6f22e7-109c-4d9e-b8bf-4ea63b2823ca",
|
197
197
|
"core": true,
|
198
198
|
"unlocked_by": null,
|
199
|
-
"difficulty":
|
199
|
+
"difficulty": 2,
|
200
200
|
"topics": [
|
201
201
|
"control_flow_conditionals",
|
202
202
|
"control_flow_loops",
|
@@ -219,7 +219,7 @@
|
|
219
219
|
{
|
220
220
|
"slug": "anagram",
|
221
221
|
"uuid": "b9fd0f13-966c-4085-ac9d-ed49a96ac0bf",
|
222
|
-
"core":
|
222
|
+
"core": true,
|
223
223
|
"unlocked_by": null,
|
224
224
|
"difficulty": 1,
|
225
225
|
"topics": [
|
@@ -278,7 +278,7 @@
|
|
278
278
|
"uuid": "6c702aa9-70f3-41d0-bc76-4323a08f8fbf",
|
279
279
|
"core": false,
|
280
280
|
"unlocked_by": null,
|
281
|
-
"difficulty":
|
281
|
+
"difficulty": 3,
|
282
282
|
"topics": [
|
283
283
|
"control_flow_conditionals",
|
284
284
|
"dates",
|
@@ -315,7 +315,7 @@
|
|
315
315
|
{
|
316
316
|
"slug": "roman-numerals",
|
317
317
|
"uuid": "150d3608-d234-4c9e-ab6d-2d91f8a2c855",
|
318
|
-
"core":
|
318
|
+
"core": true,
|
319
319
|
"unlocked_by": null,
|
320
320
|
"difficulty": 1,
|
321
321
|
"topics": [
|
@@ -397,7 +397,7 @@
|
|
397
397
|
"uuid": "71a1fdb6-414e-452c-8d24-03f2a5621e62",
|
398
398
|
"core": false,
|
399
399
|
"unlocked_by": null,
|
400
|
-
"difficulty":
|
400
|
+
"difficulty": 2,
|
401
401
|
"topics": [
|
402
402
|
"control_flow_conditionals",
|
403
403
|
"control_flow_loops",
|
@@ -410,7 +410,7 @@
|
|
410
410
|
"uuid": "cc138097-7c0f-44b4-b07e-2a24f6475986",
|
411
411
|
"core": false,
|
412
412
|
"unlocked_by": null,
|
413
|
-
"difficulty":
|
413
|
+
"difficulty": 2,
|
414
414
|
"topics": [
|
415
415
|
"control_flow_conditionals",
|
416
416
|
"control_flow_loops",
|
@@ -425,7 +425,7 @@
|
|
425
425
|
"uuid": "fcfc6b44-597d-4a03-bf02-6be5c8f7ae4e",
|
426
426
|
"core": false,
|
427
427
|
"unlocked_by": null,
|
428
|
-
"difficulty":
|
428
|
+
"difficulty": 3,
|
429
429
|
"topics": [
|
430
430
|
"arrays",
|
431
431
|
"control_flow_conditionals",
|
data/tracks/erlang/config.json
CHANGED
@@ -11,82 +11,113 @@
|
|
11
11
|
{
|
12
12
|
"slug": "hello-world",
|
13
13
|
"uuid": "50547bc4-a78e-4450-9412-30bfa46c4a93",
|
14
|
-
"core":
|
14
|
+
"core": true,
|
15
|
+
"auto_approve": true,
|
15
16
|
"unlocked_by": null,
|
16
17
|
"difficulty": 1,
|
17
|
-
"topics": [
|
18
|
+
"topics": [
|
19
|
+
"strings"
|
20
|
+
]
|
18
21
|
},
|
19
22
|
{
|
20
23
|
"slug": "leap",
|
21
24
|
"uuid": "241eb25c-925b-4395-876c-c1dfe84e1c85",
|
22
|
-
"core":
|
25
|
+
"core": true,
|
23
26
|
"unlocked_by": null,
|
24
27
|
"difficulty": 1,
|
25
|
-
"topics": [
|
28
|
+
"topics": [
|
29
|
+
"control_flow_conditionals",
|
30
|
+
"logic"
|
31
|
+
]
|
26
32
|
},
|
27
33
|
{
|
28
34
|
"slug": "accumulate",
|
29
35
|
"uuid": "a21065ca-6aad-46b2-ada0-6a62abfcea2b",
|
30
|
-
"core":
|
36
|
+
"core": true,
|
31
37
|
"unlocked_by": null,
|
32
38
|
"difficulty": 1,
|
33
|
-
"topics": [
|
39
|
+
"topics": [
|
40
|
+
"lists",
|
41
|
+
"mathematics"
|
42
|
+
]
|
34
43
|
},
|
35
44
|
{
|
36
45
|
"slug": "collatz-conjecture",
|
37
46
|
"uuid": "63c77b77-5a02-40ce-b5f6-372a5b3ae13d",
|
38
|
-
"core":
|
47
|
+
"core": true,
|
39
48
|
"unlocked_by": null,
|
40
49
|
"difficulty": 1,
|
41
|
-
"topics": [
|
50
|
+
"topics": [
|
51
|
+
"control_flow_conditionals",
|
52
|
+
"pattern_matching"
|
53
|
+
]
|
42
54
|
},
|
43
55
|
{
|
44
56
|
"slug": "raindrops",
|
45
57
|
"uuid": "63259a44-cdec-4e25-ab0e-eddc6f9a9ca1",
|
46
|
-
"core":
|
58
|
+
"core": true,
|
47
59
|
"unlocked_by": null,
|
48
60
|
"difficulty": 1,
|
49
|
-
"topics": [
|
61
|
+
"topics": [
|
62
|
+
"control_flow_conditionals",
|
63
|
+
"pattern_matching",
|
64
|
+
"strings"
|
65
|
+
]
|
50
66
|
},
|
51
67
|
{
|
52
68
|
"slug": "rna-transcription",
|
53
69
|
"uuid": "8e9a98b1-bf4f-4c94-a258-a8618cc37f55",
|
54
|
-
"core":
|
70
|
+
"core": true,
|
55
71
|
"unlocked_by": null,
|
56
72
|
"difficulty": 2,
|
57
|
-
"topics": [
|
73
|
+
"topics": [
|
74
|
+
"control_flow_conditionals",
|
75
|
+
"pattern_matching",
|
76
|
+
"strings"
|
77
|
+
]
|
58
78
|
},
|
59
79
|
{
|
60
80
|
"slug": "bob",
|
61
81
|
"uuid": "fced3620-26f2-4439-822c-27e1d59e24e1",
|
62
|
-
"core":
|
82
|
+
"core": true,
|
63
83
|
"unlocked_by": null,
|
64
84
|
"difficulty": 2,
|
65
|
-
"topics": [
|
85
|
+
"topics": [
|
86
|
+
"pattern_matching",
|
87
|
+
"strings"
|
88
|
+
]
|
66
89
|
},
|
67
90
|
{
|
68
91
|
"slug": "strain",
|
69
92
|
"uuid": "c10bfbab-0b58-4fcb-aadc-304bd4b73cfc",
|
70
|
-
"core":
|
93
|
+
"core": true,
|
71
94
|
"unlocked_by": null,
|
72
95
|
"difficulty": 2,
|
73
|
-
"topics": [
|
96
|
+
"topics": [
|
97
|
+
"lists",
|
98
|
+
"control_flow_conditionals"
|
99
|
+
]
|
74
100
|
},
|
75
101
|
{
|
76
102
|
"slug": "hamming",
|
77
103
|
"uuid": "8b7390fc-da44-4f02-ad17-a7eb5c19cf2b",
|
78
|
-
"core":
|
104
|
+
"core": true,
|
79
105
|
"unlocked_by": null,
|
80
106
|
"difficulty": 2,
|
81
|
-
"topics": [
|
107
|
+
"topics": [
|
108
|
+
"strings"
|
109
|
+
]
|
82
110
|
},
|
83
111
|
{
|
84
112
|
"slug": "space-age",
|
85
113
|
"uuid": "f276e064-a6d4-4a50-b53b-f36c1b30c62f",
|
86
|
-
"core":
|
114
|
+
"core": true,
|
87
115
|
"unlocked_by": null,
|
88
116
|
"difficulty": 2,
|
89
|
-
"topics": [
|
117
|
+
"topics": [
|
118
|
+
"mathematics",
|
119
|
+
"time"
|
120
|
+
]
|
90
121
|
},
|
91
122
|
{
|
92
123
|
"slug": "grains",
|
@@ -94,7 +125,11 @@
|
|
94
125
|
"core": false,
|
95
126
|
"unlocked_by": null,
|
96
127
|
"difficulty": 2,
|
97
|
-
"topics": [
|
128
|
+
"topics": [
|
129
|
+
"bitwise_operations",
|
130
|
+
"mathematics",
|
131
|
+
"pattern_matching"
|
132
|
+
]
|
98
133
|
},
|
99
134
|
{
|
100
135
|
"slug": "isogram",
|
@@ -102,7 +137,11 @@
|
|
102
137
|
"core": false,
|
103
138
|
"unlocked_by": null,
|
104
139
|
"difficulty": 2,
|
105
|
-
"topics": [
|
140
|
+
"topics": [
|
141
|
+
"control_flow_conditionals",
|
142
|
+
"pattern_matching",
|
143
|
+
"strings"
|
144
|
+
]
|
106
145
|
},
|
107
146
|
{
|
108
147
|
"slug": "pangram",
|
@@ -110,7 +149,11 @@
|
|
110
149
|
"core": false,
|
111
150
|
"unlocked_by": null,
|
112
151
|
"difficulty": 2,
|
113
|
-
"topics": [
|
152
|
+
"topics": [
|
153
|
+
"control_flow_conditionals",
|
154
|
+
"control_flow_recursion",
|
155
|
+
"strings"
|
156
|
+
]
|
114
157
|
},
|
115
158
|
{
|
116
159
|
"slug": "nucleotide-count",
|
@@ -118,60 +161,93 @@
|
|
118
161
|
"core": false,
|
119
162
|
"unlocked_by": null,
|
120
163
|
"difficulty": 2,
|
121
|
-
"topics": [
|
164
|
+
"topics": [
|
165
|
+
"parsing",
|
166
|
+
"strings"
|
167
|
+
]
|
122
168
|
},
|
123
169
|
{
|
124
170
|
"slug": "difference-of-squares",
|
125
171
|
"uuid": "ab852e36-3968-403f-93f5-53c7ecafa4c8",
|
126
172
|
"core": false,
|
127
|
-
"unlocked_by":
|
173
|
+
"unlocked_by": "hello-world",
|
128
174
|
"difficulty": 2,
|
129
|
-
"topics": [
|
175
|
+
"topics": [
|
176
|
+
"control_flow_recursion",
|
177
|
+
"mathematics",
|
178
|
+
"pattern_matching"
|
179
|
+
]
|
130
180
|
},
|
131
181
|
{
|
132
182
|
"slug": "triangle",
|
133
183
|
"uuid": "2972e0de-b5ca-4fdd-9dbf-648937763394",
|
134
184
|
"core": false,
|
135
|
-
"unlocked_by":
|
185
|
+
"unlocked_by": "leap",
|
136
186
|
"difficulty": 2,
|
137
|
-
"topics": [
|
187
|
+
"topics": [
|
188
|
+
"control_flow_conditionals",
|
189
|
+
"mathematics"
|
190
|
+
]
|
138
191
|
},
|
139
192
|
{
|
140
193
|
"slug": "sum-of-multiples",
|
141
194
|
"uuid": "5af1c90a-f98d-4682-885b-9770c9223194",
|
142
195
|
"core": false,
|
143
|
-
"unlocked_by":
|
196
|
+
"unlocked_by": "collatz-conjecture",
|
144
197
|
"difficulty": 3,
|
145
|
-
"topics": [
|
198
|
+
"topics": [
|
199
|
+
"mathematics"
|
200
|
+
]
|
146
201
|
},
|
147
202
|
{
|
148
203
|
"slug": "anagram",
|
149
204
|
"uuid": "8f0570ae-223f-4da4-8b84-268b797b28ad",
|
150
205
|
"core": false,
|
151
|
-
"unlocked_by":
|
206
|
+
"unlocked_by": "accumulate",
|
152
207
|
"difficulty": 3,
|
153
|
-
"topics": [
|
208
|
+
"topics": [
|
209
|
+
"lists",
|
210
|
+
"filtering",
|
211
|
+
"strings"
|
212
|
+
]
|
154
213
|
},
|
155
214
|
{
|
156
215
|
"slug": "atbash-cipher",
|
157
216
|
"uuid": "d8e38780-d04e-43fc-8606-97dc71e4974b",
|
158
217
|
"core": false,
|
159
|
-
"unlocked_by":
|
218
|
+
"unlocked_by": "hamming",
|
160
219
|
"difficulty": 3,
|
161
|
-
"topics": [
|
220
|
+
"topics": [
|
221
|
+
"algorithms",
|
222
|
+
"strings"
|
223
|
+
]
|
162
224
|
},
|
163
225
|
{
|
164
226
|
"slug": "phone-number",
|
165
227
|
"uuid": "668f3947-3142-485e-89f8-e0e5060be29d",
|
166
228
|
"core": false,
|
167
|
-
"unlocked_by":
|
229
|
+
"unlocked_by": "space-age",
|
168
230
|
"difficulty": 3,
|
169
|
-
"topics": [
|
231
|
+
"topics": [
|
232
|
+
"parsing",
|
233
|
+
"strings"
|
234
|
+
]
|
170
235
|
},
|
171
236
|
{
|
172
237
|
"slug": "isbn-verifier",
|
173
238
|
"uuid": "ba4cd1e4-b5f0-4efc-a4c8-58c5252cae9e",
|
174
239
|
"core": false,
|
240
|
+
"unlocked_by": "strain",
|
241
|
+
"difficulty": 3,
|
242
|
+
"topics": [
|
243
|
+
"algorithms",
|
244
|
+
"mathematics"
|
245
|
+
]
|
246
|
+
},
|
247
|
+
{
|
248
|
+
"slug": "bracket-push",
|
249
|
+
"uuid": "f93f5f18-3e3b-11e8-b467-0ed5f89f718b",
|
250
|
+
"core": false,
|
175
251
|
"unlocked_by": null,
|
176
252
|
"difficulty": 3,
|
177
253
|
"topics": []
|
@@ -180,209 +256,289 @@
|
|
180
256
|
"slug": "gigasecond",
|
181
257
|
"uuid": "24ae9a43-4e1c-418b-97f6-2c83dbc0e14a",
|
182
258
|
"core": false,
|
183
|
-
"unlocked_by":
|
259
|
+
"unlocked_by": "bob",
|
184
260
|
"difficulty": 3,
|
185
|
-
"topics": [
|
261
|
+
"topics": [
|
262
|
+
"dates",
|
263
|
+
"mathematics"
|
264
|
+
]
|
186
265
|
},
|
187
266
|
{
|
188
267
|
"slug": "scrabble-score",
|
189
268
|
"uuid": "4f5045d5-9ae1-4bdb-ac0b-a5d279a60ed8",
|
190
269
|
"core": false,
|
191
|
-
"unlocked_by":
|
270
|
+
"unlocked_by": "rna-transcription",
|
192
271
|
"difficulty": 3,
|
193
|
-
"topics": [
|
272
|
+
"topics": [
|
273
|
+
"pattern_matching",
|
274
|
+
"strings"
|
275
|
+
]
|
194
276
|
},
|
195
277
|
{
|
196
278
|
"slug": "two-fer",
|
197
279
|
"uuid": "ea369b85-b180-48ca-b602-c40811fc865f",
|
198
280
|
"core": false,
|
199
|
-
"unlocked_by":
|
281
|
+
"unlocked_by": "raindrops",
|
200
282
|
"difficulty": 3,
|
201
|
-
"topics": [
|
283
|
+
"topics": [
|
284
|
+
"strings"
|
285
|
+
]
|
202
286
|
},
|
203
287
|
{
|
204
288
|
"slug": "robot-simulator",
|
205
289
|
"uuid": "a2d4ca29-54e2-4969-bfc9-ee483acf9caf",
|
206
290
|
"core": false,
|
207
|
-
"unlocked_by":
|
291
|
+
"unlocked_by": "space-age",
|
208
292
|
"difficulty": 4,
|
209
|
-
"topics": [
|
293
|
+
"topics": [
|
294
|
+
"algorithms",
|
295
|
+
"control_flow_conditionals",
|
296
|
+
"control_flow_recursion"
|
297
|
+
]
|
210
298
|
},
|
211
299
|
{
|
212
300
|
"slug": "grade-school",
|
213
301
|
"uuid": "67bbcc69-31b7-41f2-a8e1-5a07d30e00d6",
|
214
302
|
"core": false,
|
215
|
-
"unlocked_by":
|
303
|
+
"unlocked_by": "bob",
|
216
304
|
"difficulty": 4,
|
217
|
-
"topics": [
|
305
|
+
"topics": [
|
306
|
+
"pattern_matching"
|
307
|
+
]
|
218
308
|
},
|
219
309
|
{
|
220
310
|
"slug": "word-count",
|
221
311
|
"uuid": "43df8921-f0c3-4a0c-9bdf-eb89405049ad",
|
222
312
|
"core": false,
|
223
|
-
"unlocked_by":
|
313
|
+
"unlocked_by": "hamming",
|
224
314
|
"difficulty": 4,
|
225
|
-
"topics": [
|
315
|
+
"topics": [
|
316
|
+
"lists",
|
317
|
+
"maps",
|
318
|
+
"strings"
|
319
|
+
]
|
226
320
|
},
|
227
321
|
{
|
228
322
|
"slug": "clock",
|
229
323
|
"uuid": "df90c039-8629-497a-a809-5ba2d1f8d52f",
|
230
324
|
"core": false,
|
231
|
-
"unlocked_by":
|
325
|
+
"unlocked_by": "strain",
|
232
326
|
"difficulty": 4,
|
233
|
-
"topics": [
|
327
|
+
"topics": [
|
328
|
+
"control_flow_conditionals",
|
329
|
+
"time"
|
330
|
+
]
|
234
331
|
},
|
235
332
|
{
|
236
333
|
"slug": "allergies",
|
237
334
|
"uuid": "51af2614-e349-4e90-b917-177a6017e786",
|
238
335
|
"core": false,
|
239
|
-
"unlocked_by":
|
336
|
+
"unlocked_by": "raindrops",
|
240
337
|
"difficulty": 4,
|
241
|
-
"topics": [
|
338
|
+
"topics": [
|
339
|
+
"algorithms",
|
340
|
+
"bitwise_operations"
|
341
|
+
]
|
242
342
|
},
|
243
343
|
{
|
244
344
|
"slug": "all-your-base",
|
245
345
|
"uuid": "85e23906-6fd8-486a-add8-a6c932cef7e3",
|
246
346
|
"core": false,
|
247
|
-
"unlocked_by":
|
347
|
+
"unlocked_by": "rna-transcription",
|
248
348
|
"difficulty": 4,
|
249
|
-
"topics": [
|
349
|
+
"topics": [
|
350
|
+
"mathematics"
|
351
|
+
]
|
250
352
|
},
|
251
353
|
{
|
252
354
|
"slug": "series",
|
253
355
|
"uuid": "9ca527d7-5065-4856-8c95-07deb664da7e",
|
254
356
|
"core": false,
|
255
|
-
"unlocked_by":
|
357
|
+
"unlocked_by": "hello-world",
|
256
358
|
"difficulty": 4,
|
257
|
-
"topics": [
|
359
|
+
"topics": [
|
360
|
+
"strings"
|
361
|
+
]
|
258
362
|
},
|
259
363
|
{
|
260
364
|
"slug": "parallel-letter-frequency",
|
261
365
|
"uuid": "be69c23b-7559-44fe-9e21-94a865199de7",
|
262
366
|
"core": false,
|
263
|
-
"unlocked_by":
|
367
|
+
"unlocked_by": "collatz-conjecture",
|
264
368
|
"difficulty": 4,
|
265
|
-
"topics": [
|
369
|
+
"topics": [
|
370
|
+
"pattern_matching",
|
371
|
+
"strings"
|
372
|
+
]
|
266
373
|
},
|
267
374
|
{
|
268
375
|
"slug": "roman-numerals",
|
269
376
|
"uuid": "d8ee01b3-307e-4835-a7cd-331e771111ae",
|
270
377
|
"core": false,
|
271
|
-
"unlocked_by":
|
378
|
+
"unlocked_by": "leap",
|
272
379
|
"difficulty": 4,
|
273
|
-
"topics": [
|
380
|
+
"topics": [
|
381
|
+
"pattern_matching",
|
382
|
+
"strings"
|
383
|
+
]
|
274
384
|
},
|
275
385
|
{
|
276
386
|
"slug": "sieve",
|
277
387
|
"uuid": "9cfae4bf-cff8-49bc-aee9-a37d553cef81",
|
278
388
|
"core": false,
|
279
|
-
"unlocked_by":
|
389
|
+
"unlocked_by": "accumulate",
|
280
390
|
"difficulty": 4,
|
281
|
-
"topics": [
|
391
|
+
"topics": [
|
392
|
+
"filtering",
|
393
|
+
"mathematics"
|
394
|
+
]
|
282
395
|
},
|
283
396
|
{
|
284
397
|
"slug": "largest-series-product",
|
285
398
|
"uuid": "b312ff0e-90e3-4dd8-99dc-df4a9deb1907",
|
286
399
|
"core": false,
|
287
|
-
"unlocked_by":
|
400
|
+
"unlocked_by": "bob",
|
288
401
|
"difficulty": 5,
|
289
|
-
"topics": [
|
402
|
+
"topics": [
|
403
|
+
"mathematics",
|
404
|
+
"strings"
|
405
|
+
]
|
290
406
|
},
|
291
407
|
{
|
292
408
|
"slug": "complex-numbers",
|
293
409
|
"uuid": "5fc48c1b-0e1b-47b3-b30a-5281ec364aad",
|
294
410
|
"core": false,
|
295
|
-
"unlocked_by":
|
411
|
+
"unlocked_by": "leap",
|
296
412
|
"difficulty": 5,
|
297
|
-
"topics": [
|
413
|
+
"topics": [
|
414
|
+
"mathematics",
|
415
|
+
"parsing",
|
416
|
+
"strings"
|
417
|
+
]
|
298
418
|
},
|
299
419
|
{
|
300
420
|
"slug": "rotational-cipher",
|
301
421
|
"uuid": "8ad0c97b-189d-46ac-bb72-2c72f1fe4728",
|
302
422
|
"core": false,
|
303
|
-
"unlocked_by":
|
423
|
+
"unlocked_by": "space-age",
|
304
424
|
"difficulty": 5,
|
305
|
-
"topics": [
|
425
|
+
"topics": [
|
426
|
+
"algorithms",
|
427
|
+
"strings"
|
428
|
+
]
|
306
429
|
},
|
307
430
|
{
|
308
431
|
"slug": "etl",
|
309
432
|
"uuid": "60fc4ea6-28b0-4914-bcc3-a0caefca3cb5",
|
310
433
|
"core": false,
|
311
|
-
"unlocked_by":
|
434
|
+
"unlocked_by": "hamming",
|
312
435
|
"difficulty": 6,
|
313
|
-
"topics": [
|
436
|
+
"topics": [
|
437
|
+
"algorithms",
|
438
|
+
"maps",
|
439
|
+
"strings"
|
440
|
+
]
|
314
441
|
},
|
315
442
|
{
|
316
443
|
"slug": "bank-account",
|
317
444
|
"uuid": "a7e2e89c-c599-4e30-a944-a9d4a98f2b94",
|
318
445
|
"core": false,
|
319
|
-
"unlocked_by":
|
446
|
+
"unlocked_by": "raindrops",
|
320
447
|
"difficulty": 6,
|
321
|
-
"topics": [
|
448
|
+
"topics": [
|
449
|
+
"algorithms",
|
450
|
+
"functions",
|
451
|
+
"pattern_matching"
|
452
|
+
]
|
322
453
|
},
|
323
454
|
{
|
324
455
|
"slug": "luhn",
|
325
456
|
"uuid": "e938c3e6-0b0f-498e-a3ec-47251f5bb55c",
|
326
457
|
"core": false,
|
327
|
-
"unlocked_by":
|
458
|
+
"unlocked_by": "strain",
|
328
459
|
"difficulty": 6,
|
329
|
-
"topics": [
|
460
|
+
"topics": [
|
461
|
+
"algorithms",
|
462
|
+
"mathematics"
|
463
|
+
]
|
330
464
|
},
|
331
465
|
{
|
332
466
|
"slug": "custom-set",
|
333
467
|
"uuid": "453aad9b-044e-473e-87c1-0193afb2cb13",
|
334
468
|
"core": false,
|
335
|
-
"unlocked_by":
|
469
|
+
"unlocked_by": "hello-world",
|
336
470
|
"difficulty": 6,
|
337
|
-
"topics": [
|
471
|
+
"topics": [
|
472
|
+
"types"
|
473
|
+
]
|
338
474
|
},
|
339
475
|
{
|
340
476
|
"slug": "meetup",
|
341
477
|
"uuid": "249d0c9f-dadc-4168-ba9b-0c6bfe83618d",
|
342
478
|
"core": false,
|
343
|
-
"unlocked_by":
|
479
|
+
"unlocked_by": "accumulate",
|
344
480
|
"difficulty": 6,
|
345
|
-
"topics": [
|
481
|
+
"topics": [
|
482
|
+
"control_flow_conditionals",
|
483
|
+
"dates"
|
484
|
+
]
|
346
485
|
},
|
347
486
|
{
|
348
487
|
"slug": "pascals-triangle",
|
349
488
|
"uuid": "589b763c-2b3a-11e8-b467-0ed5f89f718b",
|
350
489
|
"core": false,
|
351
|
-
"unlocked_by":
|
490
|
+
"unlocked_by": "collatz-conjecture",
|
352
491
|
"difficulty": 6,
|
353
|
-
"topics": [
|
492
|
+
"topics": [
|
493
|
+
"mathematics",
|
494
|
+
"pattern_matching",
|
495
|
+
"strings"
|
496
|
+
]
|
354
497
|
},
|
355
498
|
{
|
356
499
|
"slug": "circular-buffer",
|
357
500
|
"uuid": "058b48a9-03ec-43bc-88eb-9dbce8b79e59",
|
358
501
|
"core": false,
|
359
|
-
"unlocked_by":
|
502
|
+
"unlocked_by": "hamming",
|
360
503
|
"difficulty": 7,
|
361
|
-
"topics": [
|
504
|
+
"topics": [
|
505
|
+
"algorithms",
|
506
|
+
"types"
|
507
|
+
]
|
362
508
|
},
|
363
509
|
{
|
364
510
|
"slug": "beer-song",
|
365
511
|
"uuid": "2fedc6bf-6006-4c2d-bba7-9c66265b6f62",
|
366
512
|
"core": false,
|
367
|
-
"unlocked_by":
|
513
|
+
"unlocked_by": "leap",
|
368
514
|
"difficulty": 7,
|
369
|
-
"topics": [
|
515
|
+
"topics": [
|
516
|
+
"strings",
|
517
|
+
"text_formatting"
|
518
|
+
]
|
370
519
|
},
|
371
520
|
{
|
372
521
|
"slug": "zipper",
|
373
522
|
"uuid": "b6c242d3-40d5-484d-8466-1a32d2332288",
|
374
523
|
"core": false,
|
375
|
-
"unlocked_by":
|
524
|
+
"unlocked_by": "bob",
|
376
525
|
"difficulty": 8,
|
377
|
-
"topics": [
|
526
|
+
"topics": [
|
527
|
+
"algorithms",
|
528
|
+
"control_flow_recursion",
|
529
|
+
"types"
|
530
|
+
]
|
378
531
|
},
|
379
532
|
{
|
380
533
|
"slug": "spiral-matrix",
|
381
534
|
"uuid": "625ad6f2-c9e8-4129-a290-057209f941c5",
|
382
535
|
"core": false,
|
383
|
-
"unlocked_by":
|
536
|
+
"unlocked_by": "rna-transcription",
|
384
537
|
"difficulty": 8,
|
385
|
-
"topics": [
|
538
|
+
"topics": [
|
539
|
+
"algorithms",
|
540
|
+
"mathematics"
|
541
|
+
]
|
386
542
|
}
|
387
543
|
]
|
388
544
|
}
|
data/tracks/erlang/docs/ABOUT.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
Erlang is a programming language used
|
2
|
-
Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging.
|
3
|
-
Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance.
|
1
|
+
Erlang is a functional programming language, used for creating real-time distributed systems, which can easily scale in size.
|
4
2
|
|
5
|
-
|
3
|
+
It's best for concurrent applications, such as instant messaging and banking platforms, as each function call has their own process and operates independently.
|
4
|
+
This is useful as code can run for a very long time without issues occuring.
|
5
|
+
Also, processes and message passing are all built into the language by default - no need for any extra libraries!
|
6
|
+
|
7
|
+
It was designed within Ericsson, a Swedish telecommunications company, for use in their networks, and is currently used inside telecommunication equipment.
|
@@ -0,0 +1,45 @@
|
|
1
|
+
Given a string containing brackets `[]`, braces `{}` and parentheses `()`,
|
2
|
+
verify that all the pairs are matched and nested correctly.
|
3
|
+
|
4
|
+
## Running tests
|
5
|
+
|
6
|
+
In order to run the tests, issue the following command from the exercise
|
7
|
+
directory:
|
8
|
+
|
9
|
+
For running the tests provided, `rebar3` is used as it is the official build and
|
10
|
+
dependency management tool for erlang now. Please refer to [the tracks installation
|
11
|
+
instructions](http://exercism.io/languages/erlang/installation) on how to do that.
|
12
|
+
|
13
|
+
In order to run the tests, you can issue the following command from the exercise
|
14
|
+
directory.
|
15
|
+
|
16
|
+
```bash
|
17
|
+
$ rebar3 eunit
|
18
|
+
```
|
19
|
+
|
20
|
+
### Test versioning
|
21
|
+
|
22
|
+
Each problem defines a macro `TEST_VERSION` in the test file and
|
23
|
+
verifies that the solution defines and exports a function `test_version`
|
24
|
+
returning that same value.
|
25
|
+
|
26
|
+
To make tests pass, add the following to your solution:
|
27
|
+
|
28
|
+
```erlang
|
29
|
+
-export([test_version/0]).
|
30
|
+
|
31
|
+
test_version() ->
|
32
|
+
1.
|
33
|
+
```
|
34
|
+
|
35
|
+
The benefit of this is that reviewers can see against which test version
|
36
|
+
an iteration was written if, for example, a previously posted solution
|
37
|
+
does not solve the current problem or passes current tests.
|
38
|
+
|
39
|
+
## Questions?
|
40
|
+
|
41
|
+
For detailed information about the Erlang track, please refer to the
|
42
|
+
[help page](http://exercism.io/languages/erlang) on the Exercism site.
|
43
|
+
This covers the basic information on setting up the development
|
44
|
+
environment expected by the exercises.
|
45
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
%% Erlang compiler options
|
2
|
+
{erl_opts, [debug_info]}.
|
3
|
+
|
4
|
+
{deps, [{erl_exercism, "0.1.1"}]}.
|
5
|
+
|
6
|
+
{dialyzer, [
|
7
|
+
{warnings, [underspecs, no_return]},
|
8
|
+
{get_warnings, true},
|
9
|
+
{plt_apps, top_level_deps}, % top_level_deps | all_deps
|
10
|
+
{plt_extra_apps, []},
|
11
|
+
{plt_location, local}, % local | "/my/file/name"
|
12
|
+
{plt_prefix, "rebar3"},
|
13
|
+
{base_plt_apps, [stdlib, kernel, crypto]},
|
14
|
+
{base_plt_location, global}, % global | "/my/file/name"
|
15
|
+
{base_plt_prefix, "rebar3"}
|
16
|
+
]}.
|
17
|
+
|
18
|
+
%% eunit:test(Tests)
|
19
|
+
{eunit_tests, []}.
|
20
|
+
%% Options for eunit:test(Tests, Opts)
|
21
|
+
{eunit_opts, [verbose]}.
|
22
|
+
|
23
|
+
%% == xref ==
|
24
|
+
|
25
|
+
{xref_warnings, true}.
|
26
|
+
|
27
|
+
%% xref checks to run
|
28
|
+
{xref_checks, [undefined_function_calls, undefined_functions,
|
29
|
+
locals_not_used, exports_not_used,
|
30
|
+
deprecated_function_calls, deprecated_functions]}.
|
@@ -0,0 +1,15 @@
|
|
1
|
+
-module(bracket_push).
|
2
|
+
|
3
|
+
-export([is_paired/1, test_version/0]).
|
4
|
+
|
5
|
+
is_paired(Str) -> is_paired(Str, []).
|
6
|
+
|
7
|
+
is_paired([], Stack) -> Stack=:=[];
|
8
|
+
is_paired([C|More], Stack) when C=:=${ orelse C=:=$[ orelse C=:=$( -> is_paired(More, [C|Stack]);
|
9
|
+
is_paired([$}|More], [${|Stack]) -> is_paired(More, Stack);
|
10
|
+
is_paired([$]|More], [$[|Stack]) -> is_paired(More, Stack);
|
11
|
+
is_paired([$)|More], [$(|Stack]) -> is_paired(More, Stack);
|
12
|
+
is_paired([C|_], _) when C=:=$} orelse C=:=$] orelse C=:=$)-> false;
|
13
|
+
is_paired([_|More], Stack) -> is_paired(More, Stack).
|
14
|
+
|
15
|
+
test_version() -> 1.
|
@@ -0,0 +1,55 @@
|
|
1
|
+
% based on canonical data version 1.3.0
|
2
|
+
% https://raw.githubusercontent.com/exercism/problem-specifications/master/exercises/bracket-push/canonical-data.json
|
3
|
+
|
4
|
+
-module(bracket_push_tests).
|
5
|
+
|
6
|
+
-include_lib("erl_exercism/include/exercism.hrl").
|
7
|
+
-include_lib("eunit/include/eunit.hrl").
|
8
|
+
|
9
|
+
paired_square_brackets_test() ->
|
10
|
+
?assert(bracket_push:is_paired("[]")).
|
11
|
+
|
12
|
+
empty_string_test() ->
|
13
|
+
?assert(bracket_push:is_paired("")).
|
14
|
+
|
15
|
+
unpaired_brackets_test() ->
|
16
|
+
?assertNot(bracket_push:is_paired("[[")).
|
17
|
+
|
18
|
+
wrong_ordered_brackets_test() ->
|
19
|
+
?assertNot(bracket_push:is_paired("}{")).
|
20
|
+
|
21
|
+
wrong_closing_bracket_test() ->
|
22
|
+
?assertNot(bracket_push:is_paired("{]")).
|
23
|
+
|
24
|
+
paired_with_whitespace_test() ->
|
25
|
+
?assert(bracket_push:is_paired("{ }")).
|
26
|
+
|
27
|
+
partially_paired_brackets_test() ->
|
28
|
+
?assertNot(bracket_push:is_paired("{[])")).
|
29
|
+
|
30
|
+
simple_nested_brackets_test() ->
|
31
|
+
?assert(bracket_push:is_paired("{[]}")).
|
32
|
+
|
33
|
+
several_paired_brackets_test() ->
|
34
|
+
?assert(bracket_push:is_paired("{}[]")).
|
35
|
+
|
36
|
+
paired_and_nested_brackets_test() ->
|
37
|
+
?assert(bracket_push:is_paired("([{}({}[])])")).
|
38
|
+
|
39
|
+
unopened_closing_brackets_test() ->
|
40
|
+
?assertNot(bracket_push:is_paired("{[)][]}")).
|
41
|
+
|
42
|
+
unpaired_and_nested_brackets_test() ->
|
43
|
+
?assertNot(bracket_push:is_paired("([{])")).
|
44
|
+
|
45
|
+
paired_and_wrong_nested_brackets_test() ->
|
46
|
+
?assertNot(bracket_push:is_paired("[({]})")).
|
47
|
+
|
48
|
+
math_expression_test() ->
|
49
|
+
?assert(bracket_push:is_paired("(((185 + 223.85) * 15) - 543)/2")).
|
50
|
+
|
51
|
+
complex_latex_expression_test() ->
|
52
|
+
?assert(bracket_push:is_paired("\\left(\\begin{array}{cc} \\frac{1}{3} & x\\\\ \\mathrm{e}^{x} &... x^2 \\end{array}\\right)")).
|
53
|
+
|
54
|
+
version_test() -> ?assertMatch(1, bracket_push:test_version()).
|
55
|
+
|
data/tracks/idris/config.json
CHANGED
data/tracks/rust/docs/ABOUT.md
CHANGED
@@ -1,7 +1,15 @@
|
|
1
|
-
Rust
|
1
|
+
Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.
|
2
|
+
It aims to bring modern language design and an advanced type system to systems programming.
|
3
|
+
Rust does not use a garbage collector, using advanced static analysis to provide deterministic drops instead.
|
4
|
+
It accomplishes this via the concept of [ownership](https://doc.rust-lang.org/book/second-edition/ch04-00-understanding-ownership.html).
|
2
5
|
|
3
|
-
Rust core and the standard library
|
6
|
+
Rust's core and the standard library are intentionally minimal; batteries are not included.
|
7
|
+
Rustaceans are instead encouraged to add libraries, called _crates_, to the language by sharing them on [crates.io](https://crates.io/).
|
4
8
|
|
5
|
-
|
9
|
+
Rust is most frequently used for applications where speed, performance and stability are essential.
|
10
|
+
The [Awesome Rust](https://github.com/kud1ing/awesome-rust) list collects examples of Rust projects, which include CLI tools, ORMs, operating systems and games.
|
11
|
+
Regardless of what you build in Rust, it will be fast and memory safe!
|
6
12
|
|
7
|
-
The home page for Rust is [rust-lang.org](https://www.rust-lang.org/).
|
13
|
+
The home page for Rust is [rust-lang.org](https://www.rust-lang.org/).
|
14
|
+
Rust has excellent documentation at [rust-lang.org/documentation.html](https://www.rust-lang.org/documentation.html).
|
15
|
+
Newcomers should start with "The Book" located at [doc.rust-lang.org/book/second-edition/](https://doc.rust-lang.org/book/second-edition/).
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trackler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.1.
|
4
|
+
version: 2.2.1.174
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katrina Owen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -5008,6 +5008,12 @@ files:
|
|
5008
5008
|
- tracks/erlang/exercises/bob/src/bob.erl
|
5009
5009
|
- tracks/erlang/exercises/bob/src/example.erl
|
5010
5010
|
- tracks/erlang/exercises/bob/test/bob_tests.erl
|
5011
|
+
- tracks/erlang/exercises/bracket-push/README.md
|
5012
|
+
- tracks/erlang/exercises/bracket-push/rebar.config
|
5013
|
+
- tracks/erlang/exercises/bracket-push/src/bracket_push.app.src
|
5014
|
+
- tracks/erlang/exercises/bracket-push/src/bracket_push.erl
|
5015
|
+
- tracks/erlang/exercises/bracket-push/src/example.erl
|
5016
|
+
- tracks/erlang/exercises/bracket-push/test/bracket_push_tests.erl
|
5011
5017
|
- tracks/erlang/exercises/circular-buffer/README.md
|
5012
5018
|
- tracks/erlang/exercises/circular-buffer/rebar.config
|
5013
5019
|
- tracks/erlang/exercises/circular-buffer/src/circular_buffer.app.src
|