trackler 2.2.1.19 → 2.2.1.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/bash/config.json +11 -0
  4. data/tracks/bash/docs/ABOUT.md +5 -0
  5. data/tracks/bash/exercises/word-count/README.md +24 -0
  6. data/tracks/bash/exercises/word-count/example.awk +12 -0
  7. data/tracks/bash/exercises/word-count/example.sh +21 -0
  8. data/tracks/bash/exercises/word-count/word_count_test.sh +84 -0
  9. data/tracks/coffeescript/config/maintainers.json +5 -11
  10. data/tracks/csharp/.travis.yml +3 -0
  11. data/tracks/delphi/config/maintainers.json +1 -1
  12. data/tracks/ecmascript/config.json +108 -108
  13. data/tracks/elixir/exercises/phone-number/phone_number_test.exs +21 -1
  14. data/tracks/factor/docs/SNIPPET.txt +5 -0
  15. data/tracks/idris/docs/TESTS.md +7 -0
  16. data/tracks/java/config.json +47 -47
  17. data/tracks/javascript/config.json +103 -103
  18. data/tracks/julia/config.json +121 -121
  19. data/tracks/julia/docs/RESOURCES.md +1 -1
  20. data/tracks/julia/docs/SNIPPET.txt +8 -0
  21. data/tracks/objective-c/config.json +2 -3
  22. data/tracks/objective-c/exercises/rna-transcription/RNATranscriptionExample.m +11 -32
  23. data/tracks/ocaml/.travis-ci.sh +1 -1
  24. data/tracks/ocaml/.travis.yml +1 -1
  25. data/tracks/ocaml/README.md +1 -1
  26. data/tracks/ocaml/exercises/change/test.ml +24 -21
  27. data/tracks/ocaml/tools/test-generator/src/codegen.ml +3 -7
  28. data/tracks/ocaml/tools/test-generator/src/controller.ml +4 -5
  29. data/tracks/ocaml/tools/test-generator/src/languages.ml +4 -3
  30. data/tracks/ocaml/tools/test-generator/src/model.ml +1 -2
  31. data/tracks/ocaml/tools/test-generator/src/ocaml_special_cases.ml +19 -18
  32. data/tracks/ocaml/tools/test-generator/src/parser.ml +12 -17
  33. data/tracks/ocaml/tools/test-generator/src/purescript_special_cases.ml +11 -3
  34. data/tracks/ocaml/tools/test-generator/test/codegen_test.ml +2 -3
  35. data/tracks/ocaml/tools/test-generator/test/ocaml_special_cases_test.ml +12 -4
  36. data/tracks/ocaml/tools/test-generator/test/parser_test.ml +10 -10
  37. data/tracks/purescript/exercises/bob/test/Main.purs +5 -5
  38. data/tracks/ruby/bin/generate +1 -1
  39. data/tracks/ruby/docs/24pullrequests.md +1 -1
  40. data/tracks/ruby/exercises/all-your-base/all_your_base_test.rb +24 -24
  41. data/tracks/ruby/exercises/alphametics/.meta/generator/test_template.erb +1 -1
  42. data/tracks/ruby/exercises/bowling/.meta/generator/test_template.erb +1 -1
  43. data/tracks/ruby/exercises/bowling/bowling_test.rb +10 -10
  44. data/tracks/ruby/exercises/change/.meta/.version +1 -1
  45. data/tracks/ruby/exercises/change/.meta/solutions/change.rb +1 -1
  46. data/tracks/ruby/exercises/change/change_test.rb +7 -2
  47. data/tracks/ruby/exercises/collatz-conjecture/.meta/generator/collatz_conjecture_case.rb +1 -1
  48. data/tracks/ruby/exercises/connect/.meta/generator/test_template.erb +1 -1
  49. data/tracks/ruby/exercises/dominoes/.meta/generator/test_template.erb +1 -1
  50. data/tracks/ruby/exercises/hamming/.meta/generator/hamming_case.rb +5 -1
  51. data/tracks/ruby/exercises/hamming/hamming_test.rb +7 -7
  52. data/tracks/ruby/exercises/leap/.meta/generator/test_template.erb +1 -1
  53. data/tracks/ruby/exercises/pangram/.meta/.version +1 -1
  54. data/tracks/ruby/exercises/pangram/.meta/solutions/pangram.rb +1 -1
  55. data/tracks/ruby/exercises/pangram/pangram_test.rb +3 -3
  56. data/tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb +4 -4
  57. data/tracks/ruby/exercises/roman-numerals/.meta/solutions/roman_numerals.rb +1 -1
  58. data/tracks/ruby/exercises/space-age/.meta/generator/test_template.erb +1 -1
  59. data/tracks/ruby/lib/generator/test_template.erb +1 -1
  60. data/tracks/ruby/lib/generator/underscore.rb +1 -1
  61. data/tracks/ruby/lib/helper.rb +4 -4
  62. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha-beta/.meta/generator/test_template.erb +1 -1
  63. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/.version +0 -0
  64. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/generator/alpha_case.rb +0 -0
  65. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/generator/test_template.erb +1 -1
  66. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/solutions/alpha.rb +0 -0
  67. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/beta/.meta/.version +0 -0
  68. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/beta/.meta/generator/beta_case.rb +0 -0
  69. data/tracks/ruby/test/fixtures/{xruby → ruby}/lib/generator/test_template.erb +1 -1
  70. data/tracks/ruby/test/generator/files/track_files_test.rb +4 -4
  71. data/tracks/ruby/test/generator/implementation_test.rb +1 -1
  72. data/tracks/ruby/test/generator/template_values_test.rb +1 -1
  73. data/tracks/scala/exercises/rail-fence-cipher/src/main/scala/{RailFenceCipher.scala → .keep} +0 -0
  74. data/tracks/scala/exercises/rail-fence-cipher/src/test/scala/RailFenceCipherTest.scala +16 -23
  75. data/tracks/scala/exercises/say/src/test/scala/SayTest.scala +20 -33
  76. data/tracks/scala/testgen/src/main/scala/RailFenceCipherTestGenerator.scala +9 -53
  77. data/tracks/scala/testgen/src/main/scala/SayTestGenerator.scala +50 -0
  78. data/tracks/sml/bin/generate +1 -1
  79. data/tracks/sml/config.json +30 -0
  80. data/tracks/sml/exercises/all-your-base/README.md +61 -0
  81. data/tracks/sml/exercises/all-your-base/all-your-base.sml +2 -0
  82. data/tracks/sml/exercises/all-your-base/example.sml +36 -0
  83. data/tracks/sml/exercises/all-your-base/test.sml +75 -0
  84. data/tracks/sml/exercises/all-your-base/testlib.sml +159 -0
  85. data/tracks/sml/exercises/difference-of-squares/example.sml +3 -6
  86. data/tracks/sml/exercises/list-ops/README.md +40 -0
  87. data/tracks/sml/exercises/list-ops/example.sml +34 -0
  88. data/tracks/sml/exercises/list-ops/list-ops.sml +23 -0
  89. data/tracks/sml/exercises/list-ops/test.sml +85 -0
  90. data/tracks/sml/exercises/list-ops/testlib.sml +159 -0
  91. data/tracks/sml/exercises/prime-factors/README.md +66 -0
  92. data/tracks/sml/exercises/prime-factors/example.sml +15 -0
  93. data/tracks/sml/exercises/prime-factors/prime-factors.sml +2 -0
  94. data/tracks/sml/exercises/prime-factors/test.sml +35 -0
  95. data/tracks/sml/exercises/prime-factors/testlib.sml +159 -0
  96. metadata +34 -11
@@ -42,8 +42,8 @@
42
42
  "core": true,
43
43
  "difficulty": 1,
44
44
  "topics": [
45
- "Control flow (conditionals)",
46
- "Control flow (loops)",
45
+ "Control-flow (conditionals)",
46
+ "Control-flow (loops)",
47
47
  "Algorithms",
48
48
  "Mathematics",
49
49
  "Strings",
@@ -58,8 +58,8 @@
58
58
  "core": true,
59
59
  "difficulty": 2,
60
60
  "topics": [
61
- "Control flow (conditionals)",
62
- "Control flow (loops)",
61
+ "Control-flow (conditionals)",
62
+ "Control-flow (loops)",
63
63
  "Lists",
64
64
  "Strings",
65
65
  "Maps",
@@ -73,7 +73,7 @@
73
73
  "core": true,
74
74
  "difficulty": 2,
75
75
  "topics": [
76
- "Control flow (conditionals)",
76
+ "Control-flow (conditionals)",
77
77
  "Polymorfism",
78
78
  "Strings",
79
79
  "Unicode",
@@ -107,8 +107,8 @@
107
107
  "core": true,
108
108
  "difficulty": 4,
109
109
  "topics": [
110
- "Control flow (conditionals)",
111
- "Control flow (loops)",
110
+ "Control-flow (conditionals)",
111
+ "Control-flow (loops)",
112
112
  "Mathematics",
113
113
  "Integers",
114
114
  "Strings",
@@ -122,8 +122,8 @@
122
122
  "core": true,
123
123
  "difficulty": 4,
124
124
  "topics": [
125
- "Control flow (conditionals)",
126
- "Control flow (loops)",
125
+ "Control-flow (conditionals)",
126
+ "Control-flow (loops)",
127
127
  "Mathematics",
128
128
  "Algorithms",
129
129
  "Integers"
@@ -135,8 +135,8 @@
135
135
  "core": true,
136
136
  "difficulty": 4,
137
137
  "topics": [
138
- "Control flow (conditionals)",
139
- "Control flow (loops)",
138
+ "Control-flow (conditionals)",
139
+ "Control-flow (loops)",
140
140
  "Data structures",
141
141
  "Arrays",
142
142
  "Matrices",
@@ -149,8 +149,8 @@
149
149
  "core": true,
150
150
  "difficulty": 5,
151
151
  "topics": [
152
- "Control flow (conditionals)",
153
- "Control flow (loops)",
152
+ "Control-flow (conditionals)",
153
+ "Control-flow (loops)",
154
154
  "Algorithms",
155
155
  "Data structures",
156
156
  "Arrays",
@@ -164,8 +164,8 @@
164
164
  "core": true,
165
165
  "difficulty": 5,
166
166
  "topics": [
167
- "Control flow (conditionals)",
168
- "Control flow (loops)",
167
+ "Control-flow (conditionals)",
168
+ "Control-flow (loops)",
169
169
  "Mathematics",
170
170
  "Strings",
171
171
  "Text formatting"
@@ -177,8 +177,8 @@
177
177
  "core": true,
178
178
  "difficulty": 6,
179
179
  "topics": [
180
- "Control flow (conditionals)",
181
- "Control flow (loops)",
180
+ "Control-flow (conditionals)",
181
+ "Control-flow (loops)",
182
182
  "Algorithms",
183
183
  "Games",
184
184
  "Bitwise operations",
@@ -202,7 +202,7 @@
202
202
  "core": true,
203
203
  "difficulty": 6,
204
204
  "topics": [
205
- "Control flow (conditionals)",
205
+ "Control-flow (conditionals)",
206
206
  "Exception handling",
207
207
  "Sets",
208
208
  "Randomness",
@@ -215,8 +215,8 @@
215
215
  "core": true,
216
216
  "difficulty": 7,
217
217
  "topics": [
218
- "Control flow (conditionals)",
219
- "Control flow (loops)",
218
+ "Control-flow (conditionals)",
219
+ "Control-flow (loops)",
220
220
  "Regular expressions",
221
221
  "Exception handling",
222
222
  "Strings",
@@ -255,7 +255,7 @@
255
255
  "unlocked_by": null,
256
256
  "difficulty": 2,
257
257
  "topics": [
258
- "Control flow (conditionals)",
258
+ "Control-flow (conditionals)",
259
259
  "Exception handling",
260
260
  "Parsing",
261
261
  "Text formatting",
@@ -282,8 +282,8 @@
282
282
  "unlocked_by": "bob",
283
283
  "difficulty": 5,
284
284
  "topics": [
285
- "Control flow (conditionals)",
286
- "Control flow (loops)",
285
+ "Control-flow (conditionals)",
286
+ "Control-flow (loops)",
287
287
  "Strings"
288
288
  ]
289
289
  },
@@ -327,7 +327,7 @@
327
327
  "unlocked_by": "rna-transcription",
328
328
  "difficulty": 2,
329
329
  "topics": [
330
- "Control flow (loops)",
330
+ "Control-flow (loops)",
331
331
  "Transforming",
332
332
  "Maps",
333
333
  "Integers"
@@ -351,7 +351,7 @@
351
351
  "unlocked_by": "space-age",
352
352
  "difficulty": 5,
353
353
  "topics": [
354
- "Control flow (loops)",
354
+ "Control-flow (loops)",
355
355
  "Integers",
356
356
  "Mathematics"
357
357
  ]
@@ -363,8 +363,8 @@
363
363
  "unlocked_by": "leap",
364
364
  "difficulty": 3,
365
365
  "topics": [
366
- "Control flow (loops)",
367
- "Control flow (conditionals)",
366
+ "Control-flow (loops)",
367
+ "Control-flow (conditionals)",
368
368
  "Exception handling",
369
369
  "Integers",
370
370
  "Mathematics"
@@ -389,8 +389,8 @@
389
389
  "unlocked_by": "space-age",
390
390
  "difficulty": 3,
391
391
  "topics": [
392
- "Control flow (conditionals)",
393
- "Control flow (loops)",
392
+ "Control-flow (conditionals)",
393
+ "Control-flow (loops)",
394
394
  "Arrays",
395
395
  "Integers",
396
396
  "Mathematics"
@@ -403,7 +403,7 @@
403
403
  "unlocked_by": "pangram",
404
404
  "difficulty": 1,
405
405
  "topics": [
406
- "Control flow (loops)",
406
+ "Control-flow (loops)",
407
407
  "Lists",
408
408
  "Strings",
409
409
  "Unicode",
@@ -418,7 +418,7 @@
418
418
  "difficulty": 2,
419
419
  "topics": [
420
420
  "Strings",
421
- "Control flow (loops)",
421
+ "Control-flow (loops)",
422
422
  "Regular expressions",
423
423
  "Transforming"
424
424
  ]
@@ -430,8 +430,8 @@
430
430
  "unlocked_by": "rna-transcription",
431
431
  "difficulty": 5,
432
432
  "topics": [
433
- "Control flow (conditionals)",
434
- "Control flow (loops)",
433
+ "Control-flow (conditionals)",
434
+ "Control-flow (loops)",
435
435
  "Maps",
436
436
  "Strings"
437
437
  ]
@@ -443,8 +443,8 @@
443
443
  "unlocked_by": null,
444
444
  "difficulty": 3,
445
445
  "topics": [
446
- "Control flow (conditionals)",
447
- "Control flow (loops)",
446
+ "Control-flow (conditionals)",
447
+ "Control-flow (loops)",
448
448
  "Mathematics",
449
449
  "Pattern recognition",
450
450
  "Transforming"
@@ -457,8 +457,8 @@
457
457
  "unlocked_by": "linked-list",
458
458
  "difficulty": 8,
459
459
  "topics": [
460
- "Control flow (conditionals)",
461
- "Control flow (loops)",
460
+ "Control-flow (conditionals)",
461
+ "Control-flow (loops)",
462
462
  "Data structures",
463
463
  "Lists",
464
464
  "Arrays",
@@ -472,7 +472,7 @@
472
472
  "unlocked_by": "rna-transcription",
473
473
  "difficulty": 2,
474
474
  "topics": [
475
- "Control flow (conditionals)",
475
+ "Control-flow (conditionals)",
476
476
  "Strings",
477
477
  "Integers",
478
478
  "Transforming"
@@ -485,8 +485,8 @@
485
485
  "unlocked_by": "rna-transcription",
486
486
  "difficulty": 6,
487
487
  "topics": [
488
- "Control flow (conditionals)",
489
- "Control flow (loops)",
488
+ "Control-flow (conditionals)",
489
+ "Control-flow (loops)",
490
490
  "Bitwise operations",
491
491
  "Arrays"
492
492
  ]
@@ -498,8 +498,8 @@
498
498
  "unlocked_by": "list-ops",
499
499
  "difficulty": 4,
500
500
  "topics": [
501
- "Control flow (conditionals)",
502
- "Control flow (loops)",
501
+ "Control-flow (conditionals)",
502
+ "Control-flow (loops)",
503
503
  "Algorithms",
504
504
  "Lists",
505
505
  "Arrays",
@@ -514,8 +514,8 @@
514
514
  "unlocked_by": "simple-cipher",
515
515
  "difficulty": 7,
516
516
  "topics": [
517
- "Control flow (conditionals)",
518
- "Control flow (loops)",
517
+ "Control-flow (conditionals)",
518
+ "Control-flow (loops)",
519
519
  "Algorithms",
520
520
  "Arrays",
521
521
  "Regular expressions",
@@ -529,7 +529,7 @@
529
529
  "unlocked_by": "list-ops",
530
530
  "difficulty": 5,
531
531
  "topics": [
532
- "Control flow (loops)",
532
+ "Control-flow (loops)",
533
533
  "Algorithms",
534
534
  "Lists",
535
535
  "Callbacks"
@@ -542,8 +542,8 @@
542
542
  "unlocked_by": "atbash-cipher",
543
543
  "difficulty": 9,
544
544
  "topics": [
545
- "Control flow (conditionals)",
546
- "Control flow (loops)",
545
+ "Control-flow (conditionals)",
546
+ "Control-flow (loops)",
547
547
  "Algorithms",
548
548
  "Arrays",
549
549
  "Sorting",
@@ -559,8 +559,8 @@
559
559
  "unlocked_by": "binary",
560
560
  "difficulty": 4,
561
561
  "topics": [
562
- "Control flow (conditionals)",
563
- "Control flow (loops)",
562
+ "Control-flow (conditionals)",
563
+ "Control-flow (loops)",
564
564
  "Mathematics",
565
565
  "Integers",
566
566
  "Strings",
@@ -574,8 +574,8 @@
574
574
  "unlocked_by": "prime-factors",
575
575
  "difficulty": 5,
576
576
  "topics": [
577
- "Control flow (conditionals)",
578
- "Control flow (loops)",
577
+ "Control-flow (conditionals)",
578
+ "Control-flow (loops)",
579
579
  "Mathematics",
580
580
  "Integers",
581
581
  "Recursion"
@@ -588,8 +588,8 @@
588
588
  "unlocked_by": "binary",
589
589
  "difficulty": 4,
590
590
  "topics": [
591
- "Control flow (conditionals)",
592
- "Control flow (loops)",
591
+ "Control-flow (conditionals)",
592
+ "Control-flow (loops)",
593
593
  "Mathematics",
594
594
  "Integers",
595
595
  "Strings",
@@ -603,8 +603,8 @@
603
603
  "unlocked_by": "space-age",
604
604
  "difficulty": 4,
605
605
  "topics": [
606
- "Control flow (conditionals)",
607
- "Control flow (loops)",
606
+ "Control-flow (conditionals)",
607
+ "Control-flow (loops)",
608
608
  "Mathematics",
609
609
  "Integers",
610
610
  "Strings"
@@ -617,8 +617,8 @@
617
617
  "unlocked_by": "bob",
618
618
  "difficulty": 4,
619
619
  "topics": [
620
- "Control flow (conditionals)",
621
- "Control flow (loops)",
620
+ "Control-flow (conditionals)",
621
+ "Control-flow (loops)",
622
622
  "Strings",
623
623
  "Games",
624
624
  "Regular expressions",
@@ -632,8 +632,8 @@
632
632
  "unlocked_by": "space-age",
633
633
  "difficulty": 5,
634
634
  "topics": [
635
- "Control flow (conditionals)",
636
- "Control flow (loops)",
635
+ "Control-flow (conditionals)",
636
+ "Control-flow (loops)",
637
637
  "Algorithms",
638
638
  "Mathematics",
639
639
  "Integers"
@@ -646,7 +646,7 @@
646
646
  "unlocked_by": "pangram",
647
647
  "difficulty": 3,
648
648
  "topics": [
649
- "Control flow (loops)",
649
+ "Control-flow (loops)",
650
650
  "Exception handling",
651
651
  "Strings",
652
652
  "Text formatting"
@@ -659,7 +659,7 @@
659
659
  "unlocked_by": "space-age",
660
660
  "difficulty": 3,
661
661
  "topics": [
662
- "Control flow (loops)",
662
+ "Control-flow (loops)",
663
663
  "Algorithms",
664
664
  "Mathematics",
665
665
  "Integers"
@@ -672,8 +672,8 @@
672
672
  "unlocked_by": "bob",
673
673
  "difficulty": 4,
674
674
  "topics": [
675
- "Control flow (conditionals)",
676
- "Control flow (loops)",
675
+ "Control-flow (conditionals)",
676
+ "Control-flow (loops)",
677
677
  "Arrays",
678
678
  "Strings",
679
679
  "Text formatting",
@@ -698,8 +698,8 @@
698
698
  "unlocked_by": "binary",
699
699
  "difficulty": 4,
700
700
  "topics": [
701
- "Control flow (conditionals)",
702
- "Control flow (loops)",
701
+ "Control-flow (conditionals)",
702
+ "Control-flow (loops)",
703
703
  "Mathematics",
704
704
  "Integers",
705
705
  "Strings",
@@ -713,8 +713,8 @@
713
713
  "unlocked_by": "pangram",
714
714
  "difficulty": 7,
715
715
  "topics": [
716
- "Control flow (conditionals)",
717
- "Control flow (loops)",
716
+ "Control-flow (conditionals)",
717
+ "Control-flow (loops)",
718
718
  "Mathematics",
719
719
  "Integers",
720
720
  "Strings",
@@ -729,8 +729,8 @@
729
729
  "unlocked_by": "wordy",
730
730
  "difficulty": 7,
731
731
  "topics": [
732
- "Control flow (conditionals)",
733
- "Control flow (loops)",
732
+ "Control-flow (conditionals)",
733
+ "Control-flow (loops)",
734
734
  "Strings",
735
735
  "Arrays",
736
736
  "Text formatting"
@@ -743,8 +743,8 @@
743
743
  "unlocked_by": "linked-list",
744
744
  "difficulty": 7,
745
745
  "topics": [
746
- "Control flow (conditionals)",
747
- "Control flow (loops)",
746
+ "Control-flow (conditionals)",
747
+ "Control-flow (loops)",
748
748
  "Recursion",
749
749
  "Arrays",
750
750
  "Algorithms"
@@ -757,8 +757,8 @@
757
757
  "unlocked_by": "binary-search",
758
758
  "difficulty": 6,
759
759
  "topics": [
760
- "Control flow (conditionals)",
761
- "Control flow (loops)",
760
+ "Control-flow (conditionals)",
761
+ "Control-flow (loops)",
762
762
  "Recursion",
763
763
  "Algorithms"
764
764
  ]
@@ -770,8 +770,8 @@
770
770
  "unlocked_by": "wordy",
771
771
  "difficulty": 5,
772
772
  "topics": [
773
- "Control flow (conditionals)",
774
- "Control flow (loops)",
773
+ "Control-flow (conditionals)",
774
+ "Control-flow (loops)",
775
775
  "Exception handling",
776
776
  "Strings",
777
777
  "Games",
@@ -785,8 +785,8 @@
785
785
  "unlocked_by": "prime-factors",
786
786
  "difficulty": 5,
787
787
  "topics": [
788
- "Control flow (conditionals)",
789
- "Control flow (loops)",
788
+ "Control-flow (conditionals)",
789
+ "Control-flow (loops)",
790
790
  "Exception handling",
791
791
  "Algorithms",
792
792
  "Mathematics",
@@ -800,8 +800,8 @@
800
800
  "unlocked_by": "prime-factors",
801
801
  "difficulty": 7,
802
802
  "topics": [
803
- "Control flow (conditionals)",
804
- "Control flow (loops)",
803
+ "Control-flow (conditionals)",
804
+ "Control-flow (loops)",
805
805
  "Exception handling",
806
806
  "Algorithms",
807
807
  "Mathematics",
@@ -815,8 +815,8 @@
815
815
  "unlocked_by": "bob",
816
816
  "difficulty": 6,
817
817
  "topics": [
818
- "Control flow (conditionals)",
819
- "Control flow (loops)",
818
+ "Control-flow (conditionals)",
819
+ "Control-flow (loops)",
820
820
  "Mathematics",
821
821
  "Integers",
822
822
  "Exception handling",
@@ -831,8 +831,8 @@
831
831
  "unlocked_by": "linked-list",
832
832
  "difficulty": 6,
833
833
  "topics": [
834
- "Control flow (conditionals)",
835
- "Control flow (loops)",
834
+ "Control-flow (conditionals)",
835
+ "Control-flow (loops)",
836
836
  "Data structures",
837
837
  "Arrays",
838
838
  "Lists",
@@ -848,8 +848,8 @@
848
848
  "unlocked_by": "prime-factors",
849
849
  "difficulty": 5,
850
850
  "topics": [
851
- "Control flow (conditionals)",
852
- "Control flow (loops)",
851
+ "Control-flow (conditionals)",
852
+ "Control-flow (loops)",
853
853
  "Lists",
854
854
  "Integers"
855
855
  ]
@@ -861,8 +861,8 @@
861
861
  "unlocked_by": null,
862
862
  "difficulty": 8,
863
863
  "topics": [
864
- "Control flow (conditionals)",
865
- "Control flow (loops)",
864
+ "Control-flow (conditionals)",
865
+ "Control-flow (loops)",
866
866
  "Optional values",
867
867
  "Exception handling",
868
868
  "Equality",
@@ -877,8 +877,8 @@
877
877
  "unlocked_by": "matrix",
878
878
  "difficulty": 6,
879
879
  "topics": [
880
- "Control flow (conditionals)",
881
- "Control flow (loops)",
880
+ "Control-flow (conditionals)",
881
+ "Control-flow (loops)",
882
882
  "Optional values",
883
883
  "Exception handling",
884
884
  "Equality",
@@ -895,8 +895,8 @@
895
895
  "unlocked_by": "matrix",
896
896
  "difficulty": 5,
897
897
  "topics": [
898
- "Control flow (conditionals)",
899
- "Control flow (loops)",
898
+ "Control-flow (conditionals)",
899
+ "Control-flow (loops)",
900
900
  "Exception handling",
901
901
  "Equality",
902
902
  "Parsing",
@@ -911,8 +911,8 @@
911
911
  "unlocked_by": "gigasecond",
912
912
  "difficulty": 7,
913
913
  "topics": [
914
- "Control flow (conditionals)",
915
- "Control flow (loops)",
914
+ "Control-flow (conditionals)",
915
+ "Control-flow (loops)",
916
916
  "Exception handling",
917
917
  "Equality",
918
918
  "Time",
@@ -926,8 +926,8 @@
926
926
  "unlocked_by": "pangram",
927
927
  "difficulty": 3,
928
928
  "topics": [
929
- "Control flow (conditionals)",
930
- "Control flow (loops)",
929
+ "Control-flow (conditionals)",
930
+ "Control-flow (loops)",
931
931
  "Strings",
932
932
  "Parsing",
933
933
  "Exception handling"
@@ -940,8 +940,8 @@
940
940
  "unlocked_by": "grade-school",
941
941
  "difficulty": 6,
942
942
  "topics": [
943
- "Control flow (conditionals)",
944
- "Control flow (loops)",
943
+ "Control-flow (conditionals)",
944
+ "Control-flow (loops)",
945
945
  "Arrays",
946
946
  "Parsing",
947
947
  "Algorithms",
@@ -956,8 +956,8 @@
956
956
  "unlocked_by": "grade-school",
957
957
  "difficulty": 8,
958
958
  "topics": [
959
- "Control flow (conditionals)",
960
- "Control flow (loops)",
959
+ "Control-flow (conditionals)",
960
+ "Control-flow (loops)",
961
961
  "Arrays",
962
962
  "Parsing",
963
963
  "Games",
@@ -972,8 +972,8 @@
972
972
  "unlocked_by": "pascals-triangle",
973
973
  "difficulty": 5,
974
974
  "topics": [
975
- "Control flow (conditionals)",
976
- "Control flow (loops)",
975
+ "Control-flow (conditionals)",
976
+ "Control-flow (loops)",
977
977
  "Arrays",
978
978
  "Parsing",
979
979
  "Games",
@@ -988,8 +988,8 @@
988
988
  "unlocked_by": "binary",
989
989
  "difficulty": 5,
990
990
  "topics": [
991
- "Control flow (conditionals)",
992
- "Control flow (loops)",
991
+ "Control-flow (conditionals)",
992
+ "Control-flow (loops)",
993
993
  "Exception handling",
994
994
  "Parsing",
995
995
  "Mathematics",