trackler 2.1.0.32 → 2.1.0.33

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/common/CONTRIBUTING.md +1 -24
  3. data/fixtures/tracks/animal/config.json +6 -2
  4. data/fixtures/tracks/fake/config.json +0 -5
  5. data/fixtures/tracks/fruit/config.json +16 -4
  6. data/fixtures/tracks/jewels/config.json +6 -2
  7. data/fixtures/tracks/shoes/config.json +6 -2
  8. data/fixtures/tracks/snowflake/config.json +21 -5
  9. data/lib/trackler/track.rb +0 -11
  10. data/lib/trackler/version.rb +1 -1
  11. data/tracks/c/config.json +281 -245
  12. data/tracks/c/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  13. data/tracks/ceylon/config.json +0 -5
  14. data/tracks/ceylon/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  15. data/tracks/cpp/config.json +9 -13
  16. data/tracks/cpp/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  17. data/tracks/cpp/exercises/grade-school/grade_school_test.cpp +1 -0
  18. data/tracks/cpp/exercises/nucleotide-count/nucleotide_count_test.cpp +1 -0
  19. data/tracks/crystal/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  20. data/tracks/csharp/config.json +4 -9
  21. data/tracks/csharp/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  22. data/tracks/delphi/config.json +31 -36
  23. data/tracks/delphi/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  24. data/tracks/ecmascript/config.json +65 -7
  25. data/tracks/ecmascript/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  26. data/tracks/elixir/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  27. data/tracks/elm/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  28. data/tracks/erlang/_test/bootstrap.sh +3 -5
  29. data/tracks/erlang/config.json +108 -40
  30. data/tracks/erlang/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  31. data/tracks/factor/config.json +6 -14
  32. data/tracks/factor/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  33. data/tracks/fsharp/config.json +1 -1
  34. data/tracks/fsharp/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  35. data/tracks/go/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  36. data/tracks/haskell/config.json +0 -4
  37. data/tracks/haskell/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  38. data/tracks/idris/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  39. data/tracks/java/{TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  40. data/tracks/java/exercises/isogram/HINT.md +10 -0
  41. data/tracks/javascript/config.json +57 -6
  42. data/tracks/javascript/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  43. data/tracks/julia/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  44. data/tracks/kotlin/{TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  45. data/tracks/lfe/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  46. data/tracks/lisp/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  47. data/tracks/lua/config.json +684 -611
  48. data/tracks/lua/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  49. data/tracks/objective-c/config.json +235 -241
  50. data/tracks/objective-c/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  51. data/tracks/ocaml/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  52. data/tracks/perl6/config.json +70 -32
  53. data/tracks/php/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  54. data/tracks/r/config.json +72 -24
  55. data/tracks/r/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  56. data/tracks/racket/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  57. data/tracks/ruby/exercises/bob/.meta/.version +1 -0
  58. data/tracks/ruby/exercises/bob/.meta/generator/bob_case.rb +9 -0
  59. data/tracks/ruby/exercises/bob/.meta/solutions/bob.rb +4 -0
  60. data/tracks/ruby/exercises/bob/bob_test.rb +95 -50
  61. data/tracks/rust/config.json +0 -5
  62. data/tracks/rust/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  63. data/tracks/scala/config.json +758 -758
  64. data/tracks/scala/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  65. data/tracks/scheme/docs/EXERCISE_README_INSERT.md +0 -0
  66. data/tracks/swift/config.json +468 -478
  67. data/tracks/swift/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  68. data/tracks/typescript/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  69. data/tracks/vbnet/config.json +21 -7
  70. metadata +37 -33
@@ -502,11 +502,6 @@
502
502
  "nucleotide-codons",
503
503
  "hexadecimal"
504
504
  ],
505
- "ignored": [
506
- "_test",
507
- "docs",
508
- "img"
509
- ],
510
505
  "foregone": [
511
506
  "binary",
512
507
  "octal",
@@ -1,758 +1,758 @@
1
- {
2
- "slug":"scala",
3
- "language":"Scala",
4
- "repository":"https://github.com/exercism/xscala",
5
- "active":true,
6
- "exercises":[
7
- {
8
- "slug":"hello-world",
9
- "difficulty":1,
10
- "topics":[
11
- "Strings"
12
- ]
13
- },
14
- {
15
- "slug":"bob",
16
- "difficulty":1,
17
- "topics":[
18
- "Strings",
19
- "Control-flow (if-else statements)",
20
- "Pattern matching"
21
- ]
22
- },
23
- {
24
- "slug":"sum-of-multiples",
25
- "difficulty":1,
26
- "topics":[
27
- "Filtering",
28
- "Sets"
29
- ]
30
- },
31
- {
32
- "slug":"leap",
33
- "difficulty":1,
34
- "topics":[
35
- "Integers",
36
- "Mathematics"
37
- ]
38
- },
39
- {
40
- "slug":"space-age",
41
- "difficulty":1,
42
- "topics":[
43
- "Dates",
44
- "Enumerations",
45
- "Domain-specific languages"
46
- ]
47
- },
48
- {
49
- "slug":"gigasecond",
50
- "difficulty":1,
51
- "topics":[
52
- "Dates",
53
- "Time",
54
- "Function Overloading"
55
- ]
56
- },
57
- {
58
- "slug":"difference-of-squares",
59
- "difficulty":1,
60
- "topics":[
61
- "Integers",
62
- "Mathematics"
63
- ]
64
- },
65
- {
66
- "slug":"pangram",
67
- "difficulty":2,
68
- "topics":[
69
- "Strings"
70
- ]
71
- },
72
- {
73
- "slug":"grade-school",
74
- "difficulty":2,
75
- "topics":[
76
- "Maps",
77
- "Sequences",
78
- "Sorting"
79
- ]
80
- },
81
- {
82
- "slug":"accumulate",
83
- "difficulty":2,
84
- "topics":[
85
- "Generics",
86
- "Lists",
87
- "Transforming"
88
- ]
89
- },
90
- {
91
- "slug":"raindrops",
92
- "difficulty":2,
93
- "topics":[
94
- "Strings",
95
- "Logic",
96
- "Transforming"
97
- ]
98
- },
99
- {
100
- "slug":"hamming",
101
- "difficulty":3,
102
- "topics":[
103
- "Strings",
104
- "Filtering",
105
- "Optional values"
106
- ]
107
- },
108
- {
109
- "slug":"phone-number",
110
- "difficulty":3,
111
- "topics":[
112
- "Optional values",
113
- "Strings",
114
- "Parsing",
115
- "Transforming"
116
- ]
117
- },
118
- {
119
- "slug":"strain",
120
- "difficulty":3,
121
- "topics":[
122
- "Generics",
123
- "Sequences",
124
- "Filtering"
125
- ]
126
- },
127
- {
128
- "slug":"robot-name",
129
- "difficulty":3,
130
- "topics":[
131
- "Strings",
132
- "Randomness"
133
- ]
134
- },
135
- {
136
- "slug":"etl",
137
- "difficulty":3,
138
- "topics":[
139
- "Lists",
140
- "Maps",
141
- "Sequences",
142
- "Strings",
143
- "Transforming"
144
- ]
145
- },
146
- {
147
- "slug":"grains",
148
- "difficulty":3,
149
- "topics":[
150
- "Optional values",
151
- "Mathematics"
152
- ]
153
- },
154
- {
155
- "slug":"scrabble-score",
156
- "difficulty":3,
157
- "topics":[
158
- "Strings",
159
- "Transforming"
160
- ]
161
- },
162
- {
163
- "slug":"rna-transcription",
164
- "difficulty":3,
165
- "topics":[
166
- "Optional values",
167
- "Strings",
168
- "Transforming"
169
- ]
170
- },
171
- {
172
- "slug":"triangle",
173
- "difficulty":3,
174
- "topics":[
175
- "Enumerations",
176
- "Mathematics"
177
- ]
178
- },
179
- {
180
- "slug":"perfect-numbers",
181
- "difficulty":3,
182
- "topics":[
183
- "Discriminated unions",
184
- "Enumerations",
185
- "Integers",
186
- "Mathematics"
187
- ]
188
- },
189
- {
190
- "slug":"binary-search",
191
- "difficulty":3,
192
- "topics":[
193
- "Searching",
194
- "Arrays",
195
- "Optional values"
196
- ]
197
- },
198
- {
199
- "slug":"secret-handshake",
200
- "difficulty":3,
201
- "topics":[
202
- "Lists",
203
- "Strings",
204
- "Bitwise operations"
205
- ]
206
- },
207
- {
208
- "slug":"sieve",
209
- "difficulty":3,
210
- "topics":[
211
- "Filtering",
212
- "Mathematics",
213
- "Lists"
214
- ]
215
- },
216
- {
217
- "slug":"robot-simulator",
218
- "difficulty":3,
219
- "topics":[
220
- "Enumerations",
221
- "Tuples"
222
- ]
223
- },
224
- {
225
- "slug":"isogram",
226
- "difficulty":3,
227
- "topics":[
228
- "Strings",
229
- "Filtering"
230
- ]
231
- },
232
- {
233
- "slug":"clock",
234
- "difficulty":3,
235
- "topics":[
236
- "Time",
237
- "Structural equality"
238
- ]
239
- },
240
- {
241
- "slug":"protein-translation",
242
- "difficulty":3,
243
- "topics":[
244
- "Strings",
245
- "Transforming",
246
- "Sequences"
247
- ]
248
- },
249
- {
250
- "slug": "beer-song",
251
- "difficulty": 3,
252
- "topics": [
253
- "Text formatting",
254
- "Algorithms",
255
- "Control-flow",
256
- "Strings"
257
- ]
258
- },
259
- {
260
- "slug":"matrix",
261
- "difficulty":4,
262
- "topics":[
263
- "Strings",
264
- "Matrices",
265
- "Parsing",
266
- "Vectors"
267
- ]
268
- },
269
- {
270
- "slug":"house",
271
- "difficulty":4,
272
- "topics":[
273
- "Strings",
274
- "Text formatting",
275
- "Algorithms"
276
- ]
277
- },
278
- {
279
- "slug":"series",
280
- "difficulty":4,
281
- "topics":[
282
- "Strings",
283
- "Sequences",
284
- "Transforming"
285
- ]
286
- },
287
- {
288
- "slug":"word-count",
289
- "difficulty":4,
290
- "topics":[
291
- "Maps",
292
- "Strings",
293
- "Transforming"
294
- ]
295
- },
296
- {
297
- "slug":"anagram",
298
- "difficulty":4,
299
- "topics":[
300
- "Sequences",
301
- "Strings",
302
- "Filtering"
303
- ]
304
- },
305
- {
306
- "slug":"nucleotide-count",
307
- "difficulty":4,
308
- "topics":[
309
- "Maps",
310
- "Strings"
311
- ]
312
- },
313
- {
314
- "slug":"meetup",
315
- "difficulty":4,
316
- "topics":[
317
- "Dates"
318
- ]
319
- },
320
- {
321
- "slug":"prime-factors",
322
- "difficulty":4,
323
- "topics":[
324
- "Lists",
325
- "Integers",
326
- "Algorithms",
327
- "Mathematics"
328
- ]
329
- },
330
- {
331
- "slug":"allergies",
332
- "difficulty":4,
333
- "topics":[
334
- "Lists",
335
- "Enumerations",
336
- "Filtering"
337
- ]
338
- },
339
- {
340
- "slug":"all-your-base",
341
- "difficulty":4,
342
- "topics":[
343
- "Integers",
344
- "Lists",
345
- "Optional values",
346
- "Mathematics",
347
- "Transforming"
348
- ]
349
- },
350
- {
351
- "slug":"kindergarten-garden",
352
- "difficulty":4,
353
- "topics":[
354
- "Enumerations",
355
- "Transforming",
356
- "Lists"
357
- ]
358
- },
359
- {
360
- "slug":"largest-series-product",
361
- "difficulty":4,
362
- "topics":[
363
- "Strings",
364
- "Integers",
365
- "Optional values",
366
- "Transforming",
367
- "Mathematics"
368
- ]
369
- },
370
- {
371
- "slug":"pascals-triangle",
372
- "difficulty":4,
373
- "topics":[
374
- "Control-flow (loops)",
375
- "Lists",
376
- "Mathematics"
377
- ]
378
- },
379
- {
380
- "slug":"pythagorean-triplet",
381
- "difficulty":4,
382
- "topics":[
383
- "Integers",
384
- "Mathematics",
385
- "Sequences",
386
- "Tuples"
387
- ]
388
- },
389
- {
390
- "slug":"saddle-points",
391
- "difficulty":4,
392
- "topics":[
393
- "Matrices",
394
- "Lists",
395
- "Sets",
396
- "Tuples"
397
- ]
398
- },
399
- {
400
- "slug":"acronym",
401
- "difficulty":4,
402
- "topics":[
403
- "Strings",
404
- "Transforming"
405
- ]
406
- },
407
- {
408
- "slug":"run-length-encoding",
409
- "difficulty":5,
410
- "topics":[
411
- "Algorithms",
412
- "Transforming",
413
- "Strings"
414
- ]
415
- },
416
- {
417
- "slug":"roman-numerals",
418
- "difficulty":5,
419
- "topics":[
420
- "Sequences",
421
- "Algorithms",
422
- "Transforming"
423
- ]
424
- },
425
- {
426
- "slug":"simple-linked-list",
427
- "difficulty":5,
428
- "topics":[
429
- "Classes",
430
- "Lists",
431
- "Transforming",
432
- "Generics"
433
- ]
434
- },
435
- {
436
- "slug":"atbash-cipher",
437
- "difficulty":5,
438
- "topics":[
439
- "Strings",
440
- "Transforming",
441
- "Security"
442
- ]
443
- },
444
- {
445
- "slug":"simple-cipher",
446
- "difficulty":5,
447
- "topics":[
448
- "Optional values",
449
- "Strings",
450
- "Algorithms",
451
- "Transforming"
452
- ]
453
- },
454
- {
455
- "slug":"bank-account",
456
- "difficulty":5,
457
- "topics":[
458
- "Parallellism"
459
- ]
460
- },
461
- {
462
- "slug":"crypto-square",
463
- "difficulty":5,
464
- "topics":[
465
- "Strings",
466
- "Lists",
467
- "Security",
468
- "Transforming"
469
- ]
470
- },
471
- {
472
- "slug":"bracket-push",
473
- "difficulty":5,
474
- "topics":[
475
- "Strings",
476
- "Parsing"
477
- ]
478
- },
479
- {
480
- "slug":"queen-attack",
481
- "difficulty":5,
482
- "topics":[
483
- "Strings",
484
- "Optional values",
485
- "Logic",
486
- "Games"
487
- ]
488
- },
489
- {
490
- "slug":"luhn",
491
- "difficulty":5,
492
- "topics":[
493
- "Strings",
494
- "Algorithms",
495
- "Transforming"
496
- ]
497
- },
498
- {
499
- "slug":"food-chain",
500
- "difficulty":5,
501
- "topics":[
502
- "Text formatting",
503
- "Algorithms"
504
- ]
505
- },
506
- {
507
- "slug":"linked-list",
508
- "difficulty":5,
509
- "topics":[
510
- "Lists",
511
- "Generics",
512
- "Optional values"
513
- ]
514
- },
515
- {
516
- "slug":"custom-set",
517
- "difficulty":5,
518
- "topics":[
519
- "Sets",
520
- "Lists",
521
- "Generics"
522
- ]
523
- },
524
- {
525
- "slug":"parallel-letter-frequency",
526
- "difficulty":5,
527
- "topics":[
528
- "Maps",
529
- "Sequences",
530
- "Strings",
531
- "Parallellism",
532
- "Transforming",
533
- "Dictionaries"
534
- ]
535
- },
536
- {
537
- "slug":"book-store",
538
- "difficulty":5,
539
- "topics":[
540
- "Recursion"
541
- ]
542
- },
543
- {
544
- "slug":"nth-prime",
545
- "difficulty":6,
546
- "topics":[
547
- "Optional values",
548
- "Algorithms",
549
- "Mathematics"
550
- ]
551
- },
552
- {
553
- "slug":"palindrome-products",
554
- "difficulty":6,
555
- "topics":[
556
- "Sets",
557
- "Strings",
558
- "Tuples",
559
- "Algorithms"
560
- ]
561
- },
562
- {
563
- "slug":"ocr-numbers",
564
- "difficulty":6,
565
- "topics":[
566
- "Lists",
567
- "Strings",
568
- "Parsing",
569
- "Pattern recognition",
570
- "Transforming"
571
- ]
572
- },
573
- {
574
- "slug":"pig-latin",
575
- "difficulty":6,
576
- "topics":[
577
- "Strings",
578
- "Transforming"
579
- ]
580
- },
581
- {
582
- "slug":"binary-search-tree",
583
- "difficulty":6,
584
- "topics":[
585
- "Searching",
586
- "Lists",
587
- "Trees",
588
- "Generics"
589
- ]
590
- },
591
- {
592
- "slug":"rail-fence-cipher",
593
- "difficulty":6,
594
- "topics":[
595
- "Strings",
596
- "Algorithms",
597
- "Transforming"
598
- ]
599
- },
600
- {
601
- "slug":"bowling",
602
- "difficulty":6,
603
- "topics":[
604
- "Algorithms",
605
- "Control-flow (if-else statements)",
606
- "Lists"
607
- ]
608
- },
609
- {
610
- "slug":"dominoes",
611
- "difficulty":7,
612
- "topics":[
613
- "Lists",
614
- "Optional values",
615
- "Tuples",
616
- "Games"
617
- ]
618
- },
619
- {
620
- "slug":"sublist",
621
- "difficulty":7,
622
- "topics":[
623
- "Generics",
624
- "Enumerations",
625
- "Lists"
626
- ]
627
- },
628
- {
629
- "slug":"minesweeper",
630
- "difficulty":7,
631
- "topics":[
632
- "Lists",
633
- "Strings",
634
- "Parsing",
635
- "Transforming"
636
- ]
637
- },
638
- {
639
- "slug":"wordy",
640
- "difficulty":7,
641
- "topics":[
642
- "Mathematics",
643
- "Optional values",
644
- "Parsing",
645
- "Strings",
646
- "Transforming"
647
- ]
648
- },
649
- {
650
- "slug":"change",
651
- "difficulty":7,
652
- "topics":[
653
- "Integers",
654
- "Lists",
655
- "Optional values",
656
- "Mathematics"
657
- ]
658
- },
659
- {
660
- "slug":"connect",
661
- "difficulty":8,
662
- "topics":[
663
- "Recursion",
664
- "Graphs",
665
- "Optional values",
666
- "Algorithms",
667
- "Games",
668
- "Searching"
669
- ]
670
- },
671
- {
672
- "slug":"zebra-puzzle",
673
- "difficulty":8,
674
- "topics":[
675
- "Logic"
676
- ]
677
- },
678
- {
679
- "slug":"say",
680
- "difficulty":8,
681
- "topics":[
682
- "Strings",
683
- "Transforming",
684
- "Text formatting",
685
- "Optional values"
686
- ]
687
- },
688
- {
689
- "slug":"alphametics",
690
- "difficulty":9,
691
- "topics":[
692
- "Maps",
693
- "Optional values",
694
- "Strings",
695
- "Parsing"
696
- ]
697
- },
698
- {
699
- "slug":"sgf-parsing",
700
- "difficulty":9,
701
- "topics":[
702
- "Parsing",
703
- "Transforming"
704
- ]
705
- },
706
- {
707
- "slug":"lens-person",
708
- "difficulty":9,
709
- "topics":[
710
-
711
- ]
712
- },
713
- {
714
- "slug":"variable-length-quantity",
715
- "difficulty":9,
716
- "topics":[
717
- "Discriminated unions",
718
- "Lists",
719
- "Algorithms",
720
- "Bitwise operations"
721
- ]
722
- },
723
- {
724
- "slug":"zipper",
725
- "difficulty":10,
726
- "topics":[
727
- "Generics",
728
- "Optional values",
729
- "Trees"
730
- ]
731
- },
732
- {
733
- "slug":"forth",
734
- "difficulty":10,
735
- "topics":[
736
- "Strings",
737
- "Mathematics",
738
- "Parsing"
739
- ]
740
- }
741
- ],
742
- "deprecated":[
743
- "binary",
744
- "hexadecimal",
745
- "octal",
746
- "trinary"
747
- ],
748
- "ignored":[
749
- "docs",
750
- "img",
751
- "project",
752
- "target",
753
- "testgen"
754
- ],
755
- "foregone":[
756
-
757
- ]
758
- }
1
+ {
2
+ "slug": "scala",
3
+ "language": "Scala",
4
+ "repository": "https://github.com/exercism/xscala",
5
+ "active": true,
6
+ "exercises": [
7
+ {
8
+ "slug": "hello-world",
9
+ "difficulty": 1,
10
+ "topics": [
11
+ "Strings"
12
+ ]
13
+ },
14
+ {
15
+ "slug": "bob",
16
+ "difficulty": 1,
17
+ "topics": [
18
+ "Strings",
19
+ "Control-flow (if-else statements)",
20
+ "Pattern matching"
21
+ ]
22
+ },
23
+ {
24
+ "slug": "sum-of-multiples",
25
+ "difficulty": 1,
26
+ "topics": [
27
+ "Filtering",
28
+ "Sets"
29
+ ]
30
+ },
31
+ {
32
+ "slug": "leap",
33
+ "difficulty": 1,
34
+ "topics": [
35
+ "Integers",
36
+ "Mathematics"
37
+ ]
38
+ },
39
+ {
40
+ "slug": "space-age",
41
+ "difficulty": 1,
42
+ "topics": [
43
+ "Dates",
44
+ "Enumerations",
45
+ "Domain-specific languages"
46
+ ]
47
+ },
48
+ {
49
+ "slug": "gigasecond",
50
+ "difficulty": 1,
51
+ "topics": [
52
+ "Dates",
53
+ "Time",
54
+ "Function Overloading"
55
+ ]
56
+ },
57
+ {
58
+ "slug": "difference-of-squares",
59
+ "difficulty": 1,
60
+ "topics": [
61
+ "Integers",
62
+ "Mathematics"
63
+ ]
64
+ },
65
+ {
66
+ "slug": "pangram",
67
+ "difficulty": 2,
68
+ "topics": [
69
+ "Strings"
70
+ ]
71
+ },
72
+ {
73
+ "slug": "grade-school",
74
+ "difficulty": 2,
75
+ "topics": [
76
+ "Maps",
77
+ "Sequences",
78
+ "Sorting"
79
+ ]
80
+ },
81
+ {
82
+ "slug": "accumulate",
83
+ "difficulty": 2,
84
+ "topics": [
85
+ "Generics",
86
+ "Lists",
87
+ "Transforming"
88
+ ]
89
+ },
90
+ {
91
+ "slug": "raindrops",
92
+ "difficulty": 2,
93
+ "topics": [
94
+ "Strings",
95
+ "Logic",
96
+ "Transforming"
97
+ ]
98
+ },
99
+ {
100
+ "slug": "hamming",
101
+ "difficulty": 3,
102
+ "topics": [
103
+ "Strings",
104
+ "Filtering",
105
+ "Optional values"
106
+ ]
107
+ },
108
+ {
109
+ "slug": "phone-number",
110
+ "difficulty": 3,
111
+ "topics": [
112
+ "Optional values",
113
+ "Strings",
114
+ "Parsing",
115
+ "Transforming"
116
+ ]
117
+ },
118
+ {
119
+ "slug": "strain",
120
+ "difficulty": 3,
121
+ "topics": [
122
+ "Generics",
123
+ "Sequences",
124
+ "Filtering"
125
+ ]
126
+ },
127
+ {
128
+ "slug": "robot-name",
129
+ "difficulty": 3,
130
+ "topics": [
131
+ "Strings",
132
+ "Randomness"
133
+ ]
134
+ },
135
+ {
136
+ "slug": "etl",
137
+ "difficulty": 3,
138
+ "topics": [
139
+ "Lists",
140
+ "Maps",
141
+ "Sequences",
142
+ "Strings",
143
+ "Transforming"
144
+ ]
145
+ },
146
+ {
147
+ "slug": "grains",
148
+ "difficulty": 3,
149
+ "topics": [
150
+ "Optional values",
151
+ "Mathematics"
152
+ ]
153
+ },
154
+ {
155
+ "slug": "scrabble-score",
156
+ "difficulty": 3,
157
+ "topics": [
158
+ "Strings",
159
+ "Transforming"
160
+ ]
161
+ },
162
+ {
163
+ "slug": "rna-transcription",
164
+ "difficulty": 3,
165
+ "topics": [
166
+ "Optional values",
167
+ "Strings",
168
+ "Transforming"
169
+ ]
170
+ },
171
+ {
172
+ "slug": "triangle",
173
+ "difficulty": 3,
174
+ "topics": [
175
+ "Enumerations",
176
+ "Mathematics"
177
+ ]
178
+ },
179
+ {
180
+ "slug": "perfect-numbers",
181
+ "difficulty": 3,
182
+ "topics": [
183
+ "Discriminated unions",
184
+ "Enumerations",
185
+ "Integers",
186
+ "Mathematics"
187
+ ]
188
+ },
189
+ {
190
+ "slug": "binary-search",
191
+ "difficulty": 3,
192
+ "topics": [
193
+ "Searching",
194
+ "Arrays",
195
+ "Optional values"
196
+ ]
197
+ },
198
+ {
199
+ "slug": "secret-handshake",
200
+ "difficulty": 3,
201
+ "topics": [
202
+ "Lists",
203
+ "Strings",
204
+ "Bitwise operations"
205
+ ]
206
+ },
207
+ {
208
+ "slug": "sieve",
209
+ "difficulty": 3,
210
+ "topics": [
211
+ "Filtering",
212
+ "Mathematics",
213
+ "Lists"
214
+ ]
215
+ },
216
+ {
217
+ "slug": "robot-simulator",
218
+ "difficulty": 3,
219
+ "topics": [
220
+ "Enumerations",
221
+ "Tuples"
222
+ ]
223
+ },
224
+ {
225
+ "slug": "isogram",
226
+ "difficulty": 3,
227
+ "topics": [
228
+ "Strings",
229
+ "Filtering"
230
+ ]
231
+ },
232
+ {
233
+ "slug": "clock",
234
+ "difficulty": 3,
235
+ "topics": [
236
+ "Time",
237
+ "Structural equality"
238
+ ]
239
+ },
240
+ {
241
+ "slug": "protein-translation",
242
+ "difficulty": 3,
243
+ "topics": [
244
+ "Strings",
245
+ "Transforming",
246
+ "Sequences"
247
+ ]
248
+ },
249
+ {
250
+ "slug": "beer-song",
251
+ "difficulty": 3,
252
+ "topics": [
253
+ "Text formatting",
254
+ "Algorithms",
255
+ "Control-flow",
256
+ "Strings"
257
+ ]
258
+ },
259
+ {
260
+ "slug": "matrix",
261
+ "difficulty": 4,
262
+ "topics": [
263
+ "Strings",
264
+ "Matrices",
265
+ "Parsing",
266
+ "Vectors"
267
+ ]
268
+ },
269
+ {
270
+ "slug": "house",
271
+ "difficulty": 4,
272
+ "topics": [
273
+ "Strings",
274
+ "Text formatting",
275
+ "Algorithms"
276
+ ]
277
+ },
278
+ {
279
+ "slug": "series",
280
+ "difficulty": 4,
281
+ "topics": [
282
+ "Strings",
283
+ "Sequences",
284
+ "Transforming"
285
+ ]
286
+ },
287
+ {
288
+ "slug": "word-count",
289
+ "difficulty": 4,
290
+ "topics": [
291
+ "Maps",
292
+ "Strings",
293
+ "Transforming"
294
+ ]
295
+ },
296
+ {
297
+ "slug": "anagram",
298
+ "difficulty": 4,
299
+ "topics": [
300
+ "Sequences",
301
+ "Strings",
302
+ "Filtering"
303
+ ]
304
+ },
305
+ {
306
+ "slug": "nucleotide-count",
307
+ "difficulty": 4,
308
+ "topics": [
309
+ "Maps",
310
+ "Strings"
311
+ ]
312
+ },
313
+ {
314
+ "slug": "meetup",
315
+ "difficulty": 4,
316
+ "topics": [
317
+ "Dates"
318
+ ]
319
+ },
320
+ {
321
+ "slug": "prime-factors",
322
+ "difficulty": 4,
323
+ "topics": [
324
+ "Lists",
325
+ "Integers",
326
+ "Algorithms",
327
+ "Mathematics"
328
+ ]
329
+ },
330
+ {
331
+ "slug": "allergies",
332
+ "difficulty": 4,
333
+ "topics": [
334
+ "Lists",
335
+ "Enumerations",
336
+ "Filtering"
337
+ ]
338
+ },
339
+ {
340
+ "slug": "all-your-base",
341
+ "difficulty": 4,
342
+ "topics": [
343
+ "Integers",
344
+ "Lists",
345
+ "Optional values",
346
+ "Mathematics",
347
+ "Transforming"
348
+ ]
349
+ },
350
+ {
351
+ "slug": "kindergarten-garden",
352
+ "difficulty": 4,
353
+ "topics": [
354
+ "Enumerations",
355
+ "Transforming",
356
+ "Lists"
357
+ ]
358
+ },
359
+ {
360
+ "slug": "largest-series-product",
361
+ "difficulty": 4,
362
+ "topics": [
363
+ "Strings",
364
+ "Integers",
365
+ "Optional values",
366
+ "Transforming",
367
+ "Mathematics"
368
+ ]
369
+ },
370
+ {
371
+ "slug": "pascals-triangle",
372
+ "difficulty": 4,
373
+ "topics": [
374
+ "Control-flow (loops)",
375
+ "Lists",
376
+ "Mathematics"
377
+ ]
378
+ },
379
+ {
380
+ "slug": "pythagorean-triplet",
381
+ "difficulty": 4,
382
+ "topics": [
383
+ "Integers",
384
+ "Mathematics",
385
+ "Sequences",
386
+ "Tuples"
387
+ ]
388
+ },
389
+ {
390
+ "slug": "saddle-points",
391
+ "difficulty": 4,
392
+ "topics": [
393
+ "Matrices",
394
+ "Lists",
395
+ "Sets",
396
+ "Tuples"
397
+ ]
398
+ },
399
+ {
400
+ "slug": "acronym",
401
+ "difficulty": 4,
402
+ "topics": [
403
+ "Strings",
404
+ "Transforming"
405
+ ]
406
+ },
407
+ {
408
+ "slug": "run-length-encoding",
409
+ "difficulty": 5,
410
+ "topics": [
411
+ "Algorithms",
412
+ "Transforming",
413
+ "Strings"
414
+ ]
415
+ },
416
+ {
417
+ "slug": "roman-numerals",
418
+ "difficulty": 5,
419
+ "topics": [
420
+ "Sequences",
421
+ "Algorithms",
422
+ "Transforming"
423
+ ]
424
+ },
425
+ {
426
+ "slug": "simple-linked-list",
427
+ "difficulty": 5,
428
+ "topics": [
429
+ "Classes",
430
+ "Lists",
431
+ "Transforming",
432
+ "Generics"
433
+ ]
434
+ },
435
+ {
436
+ "slug": "atbash-cipher",
437
+ "difficulty": 5,
438
+ "topics": [
439
+ "Strings",
440
+ "Transforming",
441
+ "Security"
442
+ ]
443
+ },
444
+ {
445
+ "slug": "simple-cipher",
446
+ "difficulty": 5,
447
+ "topics": [
448
+ "Optional values",
449
+ "Strings",
450
+ "Algorithms",
451
+ "Transforming"
452
+ ]
453
+ },
454
+ {
455
+ "slug": "bank-account",
456
+ "difficulty": 5,
457
+ "topics": [
458
+ "Parallellism"
459
+ ]
460
+ },
461
+ {
462
+ "slug": "crypto-square",
463
+ "difficulty": 5,
464
+ "topics": [
465
+ "Strings",
466
+ "Lists",
467
+ "Security",
468
+ "Transforming"
469
+ ]
470
+ },
471
+ {
472
+ "slug": "bracket-push",
473
+ "difficulty": 5,
474
+ "topics": [
475
+ "Strings",
476
+ "Parsing"
477
+ ]
478
+ },
479
+ {
480
+ "slug": "queen-attack",
481
+ "difficulty": 5,
482
+ "topics": [
483
+ "Strings",
484
+ "Optional values",
485
+ "Logic",
486
+ "Games"
487
+ ]
488
+ },
489
+ {
490
+ "slug": "luhn",
491
+ "difficulty": 5,
492
+ "topics": [
493
+ "Strings",
494
+ "Algorithms",
495
+ "Transforming"
496
+ ]
497
+ },
498
+ {
499
+ "slug": "food-chain",
500
+ "difficulty": 5,
501
+ "topics": [
502
+ "Text formatting",
503
+ "Algorithms"
504
+ ]
505
+ },
506
+ {
507
+ "slug": "linked-list",
508
+ "difficulty": 5,
509
+ "topics": [
510
+ "Lists",
511
+ "Generics",
512
+ "Optional values"
513
+ ]
514
+ },
515
+ {
516
+ "slug": "custom-set",
517
+ "difficulty": 5,
518
+ "topics": [
519
+ "Sets",
520
+ "Lists",
521
+ "Generics"
522
+ ]
523
+ },
524
+ {
525
+ "slug": "parallel-letter-frequency",
526
+ "difficulty": 5,
527
+ "topics": [
528
+ "Maps",
529
+ "Sequences",
530
+ "Strings",
531
+ "Parallellism",
532
+ "Transforming",
533
+ "Dictionaries"
534
+ ]
535
+ },
536
+ {
537
+ "slug": "book-store",
538
+ "difficulty": 5,
539
+ "topics": [
540
+ "Recursion"
541
+ ]
542
+ },
543
+ {
544
+ "slug": "nth-prime",
545
+ "difficulty": 6,
546
+ "topics": [
547
+ "Optional values",
548
+ "Algorithms",
549
+ "Mathematics"
550
+ ]
551
+ },
552
+ {
553
+ "slug": "palindrome-products",
554
+ "difficulty": 6,
555
+ "topics": [
556
+ "Sets",
557
+ "Strings",
558
+ "Tuples",
559
+ "Algorithms"
560
+ ]
561
+ },
562
+ {
563
+ "slug": "ocr-numbers",
564
+ "difficulty": 6,
565
+ "topics": [
566
+ "Lists",
567
+ "Strings",
568
+ "Parsing",
569
+ "Pattern recognition",
570
+ "Transforming"
571
+ ]
572
+ },
573
+ {
574
+ "slug": "pig-latin",
575
+ "difficulty": 6,
576
+ "topics": [
577
+ "Strings",
578
+ "Transforming"
579
+ ]
580
+ },
581
+ {
582
+ "slug": "binary-search-tree",
583
+ "difficulty": 6,
584
+ "topics": [
585
+ "Searching",
586
+ "Lists",
587
+ "Trees",
588
+ "Generics"
589
+ ]
590
+ },
591
+ {
592
+ "slug": "rail-fence-cipher",
593
+ "difficulty": 6,
594
+ "topics": [
595
+ "Strings",
596
+ "Algorithms",
597
+ "Transforming"
598
+ ]
599
+ },
600
+ {
601
+ "slug": "bowling",
602
+ "difficulty": 6,
603
+ "topics": [
604
+ "Algorithms",
605
+ "Control-flow (if-else statements)",
606
+ "Lists"
607
+ ]
608
+ },
609
+ {
610
+ "slug": "dominoes",
611
+ "difficulty": 7,
612
+ "topics": [
613
+ "Lists",
614
+ "Optional values",
615
+ "Tuples",
616
+ "Games"
617
+ ]
618
+ },
619
+ {
620
+ "slug": "sublist",
621
+ "difficulty": 7,
622
+ "topics": [
623
+ "Generics",
624
+ "Enumerations",
625
+ "Lists"
626
+ ]
627
+ },
628
+ {
629
+ "slug": "minesweeper",
630
+ "difficulty": 7,
631
+ "topics": [
632
+ "Lists",
633
+ "Strings",
634
+ "Parsing",
635
+ "Transforming"
636
+ ]
637
+ },
638
+ {
639
+ "slug": "wordy",
640
+ "difficulty": 7,
641
+ "topics": [
642
+ "Mathematics",
643
+ "Optional values",
644
+ "Parsing",
645
+ "Strings",
646
+ "Transforming"
647
+ ]
648
+ },
649
+ {
650
+ "slug": "change",
651
+ "difficulty": 7,
652
+ "topics": [
653
+ "Integers",
654
+ "Lists",
655
+ "Optional values",
656
+ "Mathematics"
657
+ ]
658
+ },
659
+ {
660
+ "slug": "connect",
661
+ "difficulty": 8,
662
+ "topics": [
663
+ "Recursion",
664
+ "Graphs",
665
+ "Optional values",
666
+ "Algorithms",
667
+ "Games",
668
+ "Searching"
669
+ ]
670
+ },
671
+ {
672
+ "slug": "zebra-puzzle",
673
+ "difficulty": 8,
674
+ "topics": [
675
+ "Logic"
676
+ ]
677
+ },
678
+ {
679
+ "slug": "say",
680
+ "difficulty": 8,
681
+ "topics": [
682
+ "Strings",
683
+ "Transforming",
684
+ "Text formatting",
685
+ "Optional values"
686
+ ]
687
+ },
688
+ {
689
+ "slug": "alphametics",
690
+ "difficulty": 9,
691
+ "topics": [
692
+ "Maps",
693
+ "Optional values",
694
+ "Strings",
695
+ "Parsing"
696
+ ]
697
+ },
698
+ {
699
+ "slug": "sgf-parsing",
700
+ "difficulty": 9,
701
+ "topics": [
702
+ "Parsing",
703
+ "Transforming"
704
+ ]
705
+ },
706
+ {
707
+ "slug": "lens-person",
708
+ "difficulty": 9,
709
+ "topics": [
710
+
711
+ ]
712
+ },
713
+ {
714
+ "slug": "variable-length-quantity",
715
+ "difficulty": 9,
716
+ "topics": [
717
+ "Discriminated unions",
718
+ "Lists",
719
+ "Algorithms",
720
+ "Bitwise operations"
721
+ ]
722
+ },
723
+ {
724
+ "slug": "zipper",
725
+ "difficulty": 10,
726
+ "topics": [
727
+ "Generics",
728
+ "Optional values",
729
+ "Trees"
730
+ ]
731
+ },
732
+ {
733
+ "slug": "forth",
734
+ "difficulty": 10,
735
+ "topics": [
736
+ "Strings",
737
+ "Mathematics",
738
+ "Parsing"
739
+ ]
740
+ }
741
+ ],
742
+ "deprecated": [
743
+ "binary",
744
+ "hexadecimal",
745
+ "octal",
746
+ "trinary"
747
+ ],
748
+ "ignored": [
749
+ "docs",
750
+ "img",
751
+ "project",
752
+ "target",
753
+ "testgen"
754
+ ],
755
+ "foregone": [
756
+
757
+ ]
758
+ }