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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d13933224507907acc39a988d4809740f7077b1
4
- data.tar.gz: 33199102a4c7cc41ec9a584c1c23c32eaafecbbf
3
+ metadata.gz: becd82b348e1141be2f222f88cdd825dc8cd9ae0
4
+ data.tar.gz: 46a27ed81af03d55eb64230f5f67514014d89d3f
5
5
  SHA512:
6
- metadata.gz: 2b440036683246536de3cb0195d0ff8e81dcd878e518bce7072f96dbc797fff077176f8d7e0dd99171151ed273826a2c2afa2311a89bd7da1eddde47a0d7c0d9
7
- data.tar.gz: b7bcafde26e04dd3024c2e59c953a3e02d49aa4dcc9a49e8531e59b78756f8361e895e1b2f5c83a70d0d87b3580ac1a34aa56019b767e541915600acaa54be7d
6
+ metadata.gz: 76069557c80d5a3fa8528b51b6c17466501c9a0029a8561ac37171020a02943ffaf59175e24b2c34a09e0e7ef5417195440887449d2b195e53a8ab2b6af52cfa
7
+ data.tar.gz: da5f3990e6cac62eb741efc01e7be42cfb3e5130423c7ba5dad5821a471e66dfff3b9c8a755b903cfdf7a45b2f74ddd00ee620f283e13a337df928d038afece9
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.2.1.173"
2
+ VERSION = "2.2.1.174"
3
3
  end
@@ -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
- The simplest way to install Ballerina is ...
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
- # include the body of an example test
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
- # add this command
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 safe, concurrent environment to implement microservices with distributed transactions, reliable messaging, stream processing, and workflows.
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 resource you to get up to speed with the language, master the concepts and build comprehensive real world use cases.
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": false,
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": 1,
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": false,
134
+ "core": true,
135
135
  "unlocked_by": null,
136
- "difficulty": 1,
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": 1,
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": 1,
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": 1,
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": false,
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": 1,
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": false,
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": 1,
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": 1,
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": 1,
428
+ "difficulty": 3,
429
429
  "topics": [
430
430
  "arrays",
431
431
  "control_flow_conditionals",
@@ -11,82 +11,113 @@
11
11
  {
12
12
  "slug": "hello-world",
13
13
  "uuid": "50547bc4-a78e-4450-9412-30bfa46c4a93",
14
- "core": false,
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": false,
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": false,
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": false,
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": false,
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": false,
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": false,
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": false,
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": false,
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": false,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
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": null,
536
+ "unlocked_by": "rna-transcription",
384
537
  "difficulty": 8,
385
- "topics": []
538
+ "topics": [
539
+ "algorithms",
540
+ "mathematics"
541
+ ]
386
542
  }
387
543
  ]
388
544
  }
@@ -1,5 +1,7 @@
1
- Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability.
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
- The above description is a quote taken directly from the 'Getting Started' section of [the Erlang homepage](https://www.erlang.org).
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,9 @@
1
+ {application, bracket_push,
2
+ [{description, "exercism.io - bracket-push"},
3
+ {vsn, "0.0.1"},
4
+ {modules, []},
5
+ {registered, []},
6
+ {applications, [kernel,
7
+ stdlib]},
8
+ {env, []}
9
+ ]}.
@@ -0,0 +1,7 @@
1
+ -module(bracket_push).
2
+
3
+ -export([is_paired/1, test_version/0]).
4
+
5
+ is_paired(Str) -> undefined.
6
+
7
+ test_version() -> 1.
@@ -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
+
@@ -18,6 +18,7 @@
18
18
  "slug": "hello-world",
19
19
  "uuid": "b4b0db87-75a2-4c81-897f-b27d1fd4a7d6",
20
20
  "core": false,
21
+ "auto_approve": true,
21
22
  "unlocked_by": null,
22
23
  "difficulty": 1,
23
24
  "topics": [
@@ -1,7 +1,15 @@
1
- Rust aims to bring modern language design and an advanced type system to systems programming. Rust does not use a garbage collector, but instead ensures safety and optimizes code at compile time. The concept of [ownership](https://doc.rust-lang.org/book/second-edition/ch04-00-understanding-ownership.html) is how Rust achieves its largest goal, memory safety.
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 contain a minimal set of functionality. Rustaceans are encouraged to add features, in the form of libraries called _crates_, to the language and then share them on [crates.io](https://crates.io/).
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
- As a systems-level language, Rust is frequently used for building any tool where speed, performance and stability are paramount. The [Awesome Rust](https://github.com/kud1ing/awesome-rust) list collects examples of Rust projects, which include CLI tools, ORMs, operating systems and games. Regardless of what you build in Rust, it will be fast and memory safe!
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/). Rust has excellent documentation at [rust-lang.org/documentation.html](https://www.rust-lang.org/documentation.html). Newcomers should start with "The Book" located at [doc.rust-lang.org/book/second-edition/](https://doc.rust-lang.org/book/second-edition/).
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/).
@@ -1,6 +1,12 @@
1
1
  extern crate acronym;
2
2
 
3
3
  #[test]
4
+ fn empty() {
5
+ assert_eq!(acronym::abbreviate(""), "");
6
+ }
7
+
8
+ #[test]
9
+ #[ignore]
4
10
  fn basic() {
5
11
  assert_eq!(acronym::abbreviate("Portable Network Graphics"), "PNG");
6
12
  }
@@ -1 +1,5 @@
1
+ use std::collections::BTreeMap;
1
2
 
3
+ pub fn transform(h: &BTreeMap<i32, Vec<char>>) -> BTreeMap<char, i32> {
4
+ unimplemented!("How will you transform the tree {:?}?", h)
5
+ }
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.173
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-22 00:00:00.000000000 Z
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