trackler 2.2.1.159 → 2.2.1.160

Sign up to get free protection for your applications and to get access to all the features.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/bash/config/maintainers.json +16 -15
  4. data/tracks/bash/config.json +111 -103
  5. data/tracks/c/config/maintainers.json +14 -14
  6. data/tracks/c/config.json +263 -242
  7. data/tracks/ceylon/config/maintainers.json +8 -8
  8. data/tracks/ceylon/config.json +30 -32
  9. data/tracks/cfml/config/maintainers.json +6 -4
  10. data/tracks/cfml/config.json +145 -92
  11. data/tracks/common-lisp/config/maintainers.json +26 -26
  12. data/tracks/common-lisp/config.json +152 -149
  13. data/tracks/cpp/config/maintainers.json +11 -11
  14. data/tracks/cpp/config.json +162 -161
  15. data/tracks/dart/config/maintainers.json +21 -17
  16. data/tracks/dart/config.json +57 -57
  17. data/tracks/delphi/config.json +1 -0
  18. data/tracks/delphi/docs/ABOUT.md +9 -6
  19. data/tracks/ecmascript/config/maintainers.json +11 -11
  20. data/tracks/ecmascript/config.json +563 -544
  21. data/tracks/ecmascript/exercises/accumulate/package.json +1 -1
  22. data/tracks/ecmascript/exercises/acronym/package.json +1 -1
  23. data/tracks/ecmascript/exercises/all-your-base/package.json +1 -1
  24. data/tracks/ecmascript/exercises/allergies/package.json +1 -1
  25. data/tracks/ecmascript/exercises/alphametics/package.json +1 -1
  26. data/tracks/ecmascript/exercises/anagram/package.json +1 -1
  27. data/tracks/ecmascript/exercises/armstrong-numbers/package.json +1 -1
  28. data/tracks/ecmascript/exercises/atbash-cipher/package.json +1 -1
  29. data/tracks/ecmascript/exercises/beer-song/package.json +1 -1
  30. data/tracks/ecmascript/exercises/binary/package.json +1 -1
  31. data/tracks/ecmascript/exercises/binary-search/package.json +1 -1
  32. data/tracks/ecmascript/exercises/binary-search-tree/package.json +1 -1
  33. data/tracks/ecmascript/exercises/bob/package.json +1 -1
  34. data/tracks/ecmascript/exercises/bowling/package.json +1 -1
  35. data/tracks/ecmascript/exercises/bracket-push/package.json +1 -1
  36. data/tracks/ecmascript/exercises/change/package.json +1 -1
  37. data/tracks/ecmascript/exercises/circular-buffer/package.json +1 -1
  38. data/tracks/ecmascript/exercises/clock/package.json +1 -1
  39. data/tracks/ecmascript/exercises/collatz-conjecture/package.json +1 -1
  40. data/tracks/ecmascript/exercises/complex-numbers/package.json +1 -1
  41. data/tracks/ecmascript/exercises/connect/package.json +1 -1
  42. data/tracks/ecmascript/exercises/crypto-square/package.json +1 -1
  43. data/tracks/ecmascript/exercises/custom-set/package.json +1 -1
  44. data/tracks/ecmascript/exercises/diamond/package.json +1 -1
  45. data/tracks/ecmascript/exercises/difference-of-squares/package.json +1 -1
  46. data/tracks/ecmascript/exercises/diffie-hellman/package.json +1 -1
  47. data/tracks/ecmascript/exercises/etl/package.json +1 -1
  48. data/tracks/ecmascript/exercises/flatten-array/package.json +1 -1
  49. data/tracks/ecmascript/exercises/food-chain/package.json +1 -1
  50. data/tracks/ecmascript/exercises/gigasecond/package.json +1 -1
  51. data/tracks/ecmascript/exercises/grade-school/package.json +1 -1
  52. data/tracks/ecmascript/exercises/grains/package.json +1 -1
  53. data/tracks/ecmascript/exercises/hamming/package.json +1 -1
  54. data/tracks/ecmascript/exercises/hello-world/package.json +1 -1
  55. data/tracks/ecmascript/exercises/hexadecimal/package.json +1 -1
  56. data/tracks/ecmascript/exercises/house/package.json +1 -1
  57. data/tracks/ecmascript/exercises/isbn-verifier/package.json +1 -1
  58. data/tracks/ecmascript/exercises/isogram/package.json +1 -1
  59. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +1 -1
  60. data/tracks/ecmascript/exercises/largest-series-product/package.json +1 -1
  61. data/tracks/ecmascript/exercises/leap/package.json +1 -1
  62. data/tracks/ecmascript/exercises/linked-list/package.json +1 -1
  63. data/tracks/ecmascript/exercises/list-ops/package.json +1 -1
  64. data/tracks/ecmascript/exercises/luhn/package.json +1 -1
  65. data/tracks/ecmascript/exercises/matrix/package.json +1 -1
  66. data/tracks/ecmascript/exercises/meetup/package.json +1 -1
  67. data/tracks/ecmascript/exercises/minesweeper/package.json +1 -1
  68. data/tracks/ecmascript/exercises/nth-prime/package.json +1 -1
  69. data/tracks/ecmascript/exercises/nucleotide-count/package.json +1 -1
  70. data/tracks/ecmascript/exercises/ocr-numbers/package.json +1 -1
  71. data/tracks/ecmascript/exercises/octal/package.json +1 -1
  72. data/tracks/ecmascript/exercises/palindrome-products/package.json +1 -1
  73. data/tracks/ecmascript/exercises/pangram/package.json +1 -1
  74. data/tracks/ecmascript/exercises/pascals-triangle/package.json +1 -1
  75. data/tracks/ecmascript/exercises/perfect-numbers/package.json +1 -1
  76. data/tracks/ecmascript/exercises/phone-number/package.json +1 -1
  77. data/tracks/ecmascript/exercises/pig-latin/package.json +1 -1
  78. data/tracks/ecmascript/exercises/prime-factors/package.json +1 -1
  79. data/tracks/ecmascript/exercises/protein-translation/package.json +1 -1
  80. data/tracks/ecmascript/exercises/proverb/package.json +1 -1
  81. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +1 -1
  82. data/tracks/ecmascript/exercises/queen-attack/example.js +2 -2
  83. data/tracks/ecmascript/exercises/queen-attack/package.json +1 -1
  84. data/tracks/ecmascript/exercises/raindrops/package.json +1 -1
  85. data/tracks/ecmascript/exercises/react/package.json +1 -1
  86. data/tracks/ecmascript/exercises/rectangles/package.json +1 -1
  87. data/tracks/ecmascript/exercises/rna-transcription/package.json +1 -1
  88. data/tracks/ecmascript/exercises/robot-name/package.json +1 -1
  89. data/tracks/ecmascript/exercises/robot-simulator/package.json +1 -1
  90. data/tracks/ecmascript/exercises/roman-numerals/package.json +1 -1
  91. data/tracks/ecmascript/exercises/rotational-cipher/package.json +1 -1
  92. data/tracks/ecmascript/exercises/run-length-encoding/package.json +1 -1
  93. data/tracks/ecmascript/exercises/saddle-points/package.json +1 -1
  94. data/tracks/ecmascript/exercises/say/package.json +1 -1
  95. data/tracks/ecmascript/exercises/scrabble-score/package.json +1 -1
  96. data/tracks/ecmascript/exercises/secret-handshake/package.json +1 -1
  97. data/tracks/ecmascript/exercises/series/package.json +1 -1
  98. data/tracks/ecmascript/exercises/sieve/package.json +1 -1
  99. data/tracks/ecmascript/exercises/simple-cipher/package.json +1 -1
  100. data/tracks/ecmascript/exercises/simple-linked-list/package.json +1 -1
  101. data/tracks/ecmascript/exercises/space-age/package.json +1 -1
  102. data/tracks/ecmascript/exercises/spiral-matrix/package.json +1 -1
  103. data/tracks/ecmascript/exercises/strain/package.json +1 -1
  104. data/tracks/ecmascript/exercises/sublist/package.json +1 -1
  105. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +1 -1
  106. data/tracks/ecmascript/exercises/transpose/package.json +1 -1
  107. data/tracks/ecmascript/exercises/triangle/package.json +1 -1
  108. data/tracks/ecmascript/exercises/trinary/package.json +1 -1
  109. data/tracks/ecmascript/exercises/twelve-days/package.json +1 -1
  110. data/tracks/ecmascript/exercises/two-bucket/package.json +1 -1
  111. data/tracks/ecmascript/exercises/two-fer/package.json +1 -1
  112. data/tracks/ecmascript/exercises/word-count/package.json +1 -1
  113. data/tracks/ecmascript/exercises/word-search/package.json +1 -1
  114. data/tracks/ecmascript/exercises/wordy/example.js +16 -4
  115. data/tracks/ecmascript/exercises/wordy/package.json +1 -1
  116. data/tracks/ecmascript/package.json +1 -1
  117. data/tracks/elisp/config/maintainers.json +6 -6
  118. data/tracks/elisp/config.json +103 -103
  119. data/tracks/elisp/exercises/two-fer/two-fer.el +3 -3
  120. data/tracks/elm/config/maintainers.json +11 -11
  121. data/tracks/elm/config.json +171 -171
  122. data/tracks/erlang/README.md +31 -28
  123. data/tracks/erlang/config/maintainers.json +13 -7
  124. data/tracks/erlang/config.json +99 -190
  125. data/tracks/factor/config/maintainers.json +5 -5
  126. data/tracks/factor/config.json +17 -19
  127. data/tracks/fsharp/config/maintainers.json +16 -16
  128. data/tracks/fsharp/config.json +485 -469
  129. data/tracks/gnu-apl/config/maintainers.json +6 -5
  130. data/tracks/gnu-apl/config.json +46 -20
  131. data/tracks/go/config/maintainers.json +43 -32
  132. data/tracks/go/config.json +475 -457
  133. data/tracks/haskell/config/maintainers.json +26 -15
  134. data/tracks/haskell/config.json +22 -2
  135. data/tracks/idris/config/maintainers.json +6 -6
  136. data/tracks/idris/config.json +24 -35
  137. data/tracks/java/config/maintainers.json +39 -29
  138. data/tracks/java/config.json +458 -433
  139. data/tracks/javascript/config/maintainers.json +40 -40
  140. data/tracks/javascript/config.json +577 -551
  141. data/tracks/javascript/docs/LEARNING.md +1 -1
  142. data/tracks/javascript/exercises/pangram/pangram.spec.js +15 -10
  143. data/tracks/julia/REQUIRE +1 -0
  144. data/tracks/julia/config/maintainers.json +5 -5
  145. data/tracks/julia/config.json +106 -108
  146. data/tracks/kotlin/config/maintainers.json +15 -15
  147. data/tracks/kotlin/config.json +273 -257
  148. data/tracks/kotlin/exercises/accumulate/build.gradle +1 -1
  149. data/tracks/kotlin/exercises/acronym/build.gradle +1 -1
  150. data/tracks/kotlin/exercises/all-your-base/build.gradle +1 -1
  151. data/tracks/kotlin/exercises/allergies/.meta/version +1 -1
  152. data/tracks/kotlin/exercises/allergies/build.gradle +1 -1
  153. data/tracks/kotlin/exercises/anagram/build.gradle +1 -1
  154. data/tracks/kotlin/exercises/atbash-cipher/build.gradle +1 -1
  155. data/tracks/kotlin/exercises/bank-account/build.gradle +17 -17
  156. data/tracks/kotlin/exercises/beer-song/.meta/version +1 -1
  157. data/tracks/kotlin/exercises/beer-song/build.gradle +1 -1
  158. data/tracks/kotlin/exercises/binary/build.gradle +1 -1
  159. data/tracks/kotlin/exercises/binary-search/build.gradle +1 -2
  160. data/tracks/kotlin/exercises/bob/build.gradle +1 -1
  161. data/tracks/kotlin/exercises/bracket-push/build.gradle +1 -1
  162. data/tracks/kotlin/exercises/change/.meta/version +1 -1
  163. data/tracks/kotlin/exercises/change/build.gradle +1 -2
  164. data/tracks/kotlin/exercises/clock/build.gradle +1 -1
  165. data/tracks/kotlin/exercises/collatz-conjecture/build.gradle +1 -1
  166. data/tracks/kotlin/exercises/complex-numbers/build.gradle +1 -1
  167. data/tracks/kotlin/exercises/diamond/build.gradle +1 -1
  168. data/tracks/kotlin/exercises/difference-of-squares/build.gradle +1 -1
  169. data/tracks/kotlin/exercises/etl/build.gradle +1 -1
  170. data/tracks/kotlin/exercises/flatten-array/build.gradle +1 -1
  171. data/tracks/kotlin/exercises/forth/build.gradle +1 -1
  172. data/tracks/kotlin/exercises/gigasecond/build.gradle +1 -1
  173. data/tracks/kotlin/exercises/grade-school/build.gradle +1 -1
  174. data/tracks/kotlin/exercises/grains/build.gradle +1 -1
  175. data/tracks/kotlin/exercises/hamming/build.gradle +1 -1
  176. data/tracks/kotlin/exercises/hello-world/build.gradle +1 -1
  177. data/tracks/kotlin/exercises/hexadecimal/build.gradle +1 -1
  178. data/tracks/kotlin/exercises/isogram/build.gradle +1 -1
  179. data/tracks/kotlin/exercises/largest-series-product/build.gradle +1 -1
  180. data/tracks/kotlin/exercises/leap/.meta/version +1 -1
  181. data/tracks/kotlin/exercises/leap/build.gradle +1 -1
  182. data/tracks/kotlin/exercises/linked-list/build.gradle +1 -1
  183. data/tracks/kotlin/exercises/list-ops/build.gradle +1 -1
  184. data/tracks/kotlin/exercises/luhn/build.gradle +1 -1
  185. data/tracks/kotlin/exercises/meetup/.meta/version +1 -1
  186. data/tracks/kotlin/exercises/meetup/build.gradle +1 -1
  187. data/tracks/kotlin/exercises/minesweeper/build.gradle +1 -1
  188. data/tracks/kotlin/exercises/nth-prime/build.gradle +1 -1
  189. data/tracks/kotlin/exercises/nucleotide-count/build.gradle +1 -1
  190. data/tracks/kotlin/exercises/pangram/build.gradle +1 -1
  191. data/tracks/kotlin/exercises/pascals-triangle/.meta/version +1 -1
  192. data/tracks/kotlin/exercises/pascals-triangle/build.gradle +1 -1
  193. data/tracks/kotlin/exercises/perfect-numbers/build.gradle +1 -1
  194. data/tracks/kotlin/exercises/phone-number/build.gradle +1 -1
  195. data/tracks/kotlin/exercises/pig-latin/build.gradle +1 -1
  196. data/tracks/kotlin/exercises/prime-factors/build.gradle +1 -1
  197. data/tracks/kotlin/exercises/raindrops/build.gradle +1 -1
  198. data/tracks/kotlin/exercises/react/build.gradle +1 -1
  199. data/tracks/kotlin/exercises/rna-transcription/build.gradle +1 -1
  200. data/tracks/kotlin/exercises/robot-name/build.gradle +1 -1
  201. data/tracks/kotlin/exercises/robot-simulator/build.gradle +1 -1
  202. data/tracks/kotlin/exercises/roman-numerals/build.gradle +1 -1
  203. data/tracks/kotlin/exercises/rotational-cipher/.meta/version +1 -1
  204. data/tracks/kotlin/exercises/rotational-cipher/build.gradle +1 -1
  205. data/tracks/kotlin/exercises/saddle-points/build.gradle +1 -1
  206. data/tracks/kotlin/exercises/say/.meta/version +1 -1
  207. data/tracks/kotlin/exercises/say/build.gradle +1 -1
  208. data/tracks/kotlin/exercises/scrabble-score/build.gradle +1 -1
  209. data/tracks/kotlin/exercises/secret-handshake/build.gradle +1 -1
  210. data/tracks/kotlin/exercises/series/build.gradle +1 -1
  211. data/tracks/kotlin/exercises/sieve/build.gradle +1 -1
  212. data/tracks/kotlin/exercises/simple-cipher/build.gradle +1 -1
  213. data/tracks/kotlin/exercises/space-age/build.gradle +1 -1
  214. data/tracks/kotlin/exercises/spiral-matrix/build.gradle +1 -1
  215. data/tracks/kotlin/exercises/strain/build.gradle +1 -1
  216. data/tracks/kotlin/exercises/sublist/.meta/version +1 -1
  217. data/tracks/kotlin/exercises/sublist/build.gradle +1 -1
  218. data/tracks/kotlin/exercises/sum-of-multiples/build.gradle +15 -16
  219. data/tracks/kotlin/exercises/triangle/build.gradle +15 -16
  220. data/tracks/kotlin/exercises/two-fer/build.gradle +1 -1
  221. data/tracks/kotlin/exercises/word-count/build.gradle +1 -1
  222. data/tracks/lfe/config/maintainers.json +6 -6
  223. data/tracks/lfe/config.json +128 -125
  224. data/tracks/lfe/docs/LEARNING.md +1 -1
  225. data/tracks/lua/config/maintainers.json +16 -16
  226. data/tracks/lua/config.json +331 -327
  227. data/tracks/mips/config/maintainers.json +5 -5
  228. data/tracks/mips/config.json +29 -59
  229. data/tracks/nim/config/maintainers.json +8 -8
  230. data/tracks/nim/config.json +185 -127
  231. data/tracks/nim/exercises/allergies/allergies_test.nim +7 -7
  232. data/tracks/nim/exercises/allergies/example.nim +2 -2
  233. data/tracks/nim/exercises/difference-of-squares/difference_of_squares_test.nim +4 -4
  234. data/tracks/nim/exercises/difference-of-squares/example.nim +3 -3
  235. data/tracks/nim/exercises/gigasecond/example.nim +1 -1
  236. data/tracks/nim/exercises/gigasecond/gigasecond_test.nim +5 -5
  237. data/tracks/nim/exercises/nucleotide-count/example.nim +1 -1
  238. data/tracks/nim/exercises/nucleotide-count/nucleotide_count_test.nim +6 -6
  239. data/tracks/nim/exercises/pangram/example.nim +1 -1
  240. data/tracks/nim/exercises/pangram/pangram_test.nim +11 -11
  241. data/tracks/nim/exercises/triangle/example.nim +4 -4
  242. data/tracks/nim/exercises/triangle/triangle_test.nim +14 -14
  243. data/tracks/nim/exercises/word-count/HINT.md +8 -0
  244. data/tracks/nim/exercises/word-count/example.nim +8 -15
  245. data/tracks/nim/exercises/word-count/word_count_test.nim +63 -55
  246. data/tracks/perl6/Dockerfile +1 -1
  247. data/tracks/perl6/config/maintainers.json +8 -8
  248. data/tracks/perl6/config.json +72 -127
  249. data/tracks/powershell/.gitignore +2 -1
  250. data/tracks/powershell/config/maintainers.json +8 -8
  251. data/tracks/powershell/config.json +54 -37
  252. data/tracks/powershell/exercises/reverse-string/.version +1 -0
  253. data/tracks/powershell/exercises/reverse-string/README.md +13 -0
  254. data/tracks/powershell/exercises/reverse-string/ReverseString.example.ps1 +21 -0
  255. data/tracks/powershell/exercises/reverse-string/ReverseString.ps1 +9 -0
  256. data/tracks/powershell/exercises/reverse-string/ReverseString.tests.ps1 +21 -0
  257. data/tracks/powershell/exercises/sum-of-multiples/.version +1 -0
  258. data/tracks/powershell/exercises/sum-of-multiples/README.md +15 -0
  259. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.example.ps1 +20 -0
  260. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.ps1 +9 -0
  261. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.tests.ps1 +29 -0
  262. data/tracks/python/config/maintainers.json +17 -17
  263. data/tracks/python/config.json +331 -283
  264. data/tracks/python/exercises/diffie-hellman/diffie_hellman_test.py +16 -47
  265. data/tracks/r/config/maintainers.json +16 -16
  266. data/tracks/r/config.json +128 -117
  267. data/tracks/racket/config/maintainers.json +16 -16
  268. data/tracks/racket/config.json +106 -102
  269. data/tracks/reasonml/config/maintainers.json +1 -1
  270. data/tracks/reasonml/config.json +37 -23
  271. data/tracks/reasonml/exercises/bob/README.md +29 -0
  272. data/tracks/reasonml/exercises/bob/__tests__/Bob_test.re +103 -0
  273. data/tracks/reasonml/exercises/bob/bsconfig.json +30 -0
  274. data/tracks/reasonml/exercises/bob/package-lock.json +5855 -0
  275. data/tracks/reasonml/exercises/bob/package.json +20 -0
  276. data/tracks/reasonml/exercises/bob/src/Example.re +41 -0
  277. data/tracks/reasonml/exercises/hello-world/src/{HelloWorld.re → Example.re} +0 -0
  278. data/tracks/reasonml/exercises/leap/src/{Leap.re → Example.re} +0 -0
  279. data/tracks/reasonml/exercises/rna-transcription/__tests__/RnaTranscription_test.re +24 -0
  280. data/tracks/reasonml/exercises/rna-transcription/bsconfig.json +30 -0
  281. data/tracks/reasonml/exercises/rna-transcription/package.json +20 -0
  282. data/tracks/reasonml/exercises/rna-transcription/src/Example.re +14 -0
  283. data/tracks/reasonml/exercises/space-age/src/{Space_age.re → Example.re} +0 -0
  284. data/tracks/scala/config/maintainers.json +22 -10
  285. data/tracks/scala/config.json +362 -350
  286. data/tracks/scala/docs/ABOUT.md +7 -2
  287. data/tracks/scheme/config/maintainers.json +11 -11
  288. data/tracks/scheme/config.json +72 -72
  289. data/tracks/typescript/config/maintainers.json +15 -15
  290. data/tracks/typescript/config.json +382 -362
  291. data/tracks/vimscript/config/maintainers.json +11 -11
  292. data/tracks/vimscript/config.json +41 -89
  293. metadata +27 -5
@@ -1,1050 +1,1062 @@
1
1
  {
2
2
  "language": "Scala",
3
3
  "active": true,
4
+ "blurb": "Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.",
4
5
  "exercises": [
5
6
  {
6
- "uuid": "1fadd9c3-a7c9-4355-aef9-82e0df3d45b9",
7
7
  "slug": "hello-world",
8
+ "uuid": "1fadd9c3-a7c9-4355-aef9-82e0df3d45b9",
8
9
  "core": true,
9
10
  "unlocked_by": null,
10
11
  "difficulty": 1,
11
12
  "topics": [
12
- "Strings"
13
+ "strings"
13
14
  ]
14
15
  },
15
16
  {
16
- "uuid": "7221946d-6321-4cec-8e64-050abae3ccd7",
17
17
  "slug": "sum-of-multiples",
18
+ "uuid": "7221946d-6321-4cec-8e64-050abae3ccd7",
18
19
  "core": true,
19
20
  "unlocked_by": null,
20
21
  "difficulty": 1,
21
22
  "topics": [
22
- "Filtering",
23
- "Sets"
23
+ "filtering",
24
+ "sets"
24
25
  ]
25
26
  },
26
27
  {
27
- "uuid": "b600cda0-f5b8-45b3-bfd0-7e0c19a0b073",
28
28
  "slug": "leap",
29
+ "uuid": "b600cda0-f5b8-45b3-bfd0-7e0c19a0b073",
29
30
  "core": true,
30
31
  "unlocked_by": null,
31
32
  "difficulty": 1,
32
33
  "topics": [
33
- "Integers",
34
- "Mathematics"
34
+ "integers",
35
+ "mathematics"
35
36
  ]
36
37
  },
37
38
  {
38
- "uuid": "57b76aba-a485-464d-84ba-e9a445b25be6",
39
39
  "slug": "bob",
40
+ "uuid": "57b76aba-a485-464d-84ba-e9a445b25be6",
40
41
  "core": true,
41
42
  "unlocked_by": null,
42
43
  "difficulty": 1,
43
44
  "topics": [
44
- "Strings",
45
- "Control-flow (if-else statements)",
46
- "Pattern matching"
45
+ "control_flow_if_else_statements",
46
+ "pattern_matching",
47
+ "strings"
47
48
  ]
48
49
  },
49
50
  {
50
- "uuid": "f147966d-97ec-4479-8679-8cad942b499a",
51
51
  "slug": "space-age",
52
+ "uuid": "f147966d-97ec-4479-8679-8cad942b499a",
52
53
  "core": true,
53
54
  "unlocked_by": null,
54
55
  "difficulty": 1,
55
56
  "topics": [
56
- "Dates",
57
- "Enumerations",
58
- "Domain-specific languages"
57
+ "dates",
58
+ "domain_specific_languages",
59
+ "enumerations"
59
60
  ]
60
61
  },
61
62
  {
62
- "uuid": "b469a197-adf4-4d02-b129-07f993104054",
63
63
  "slug": "grade-school",
64
+ "uuid": "b469a197-adf4-4d02-b129-07f993104054",
64
65
  "core": true,
65
66
  "unlocked_by": null,
66
67
  "difficulty": 2,
67
68
  "topics": [
68
- "Maps",
69
- "Sequences",
70
- "Sorting"
69
+ "maps",
70
+ "sequences",
71
+ "sorting"
71
72
  ]
72
73
  },
73
74
  {
74
- "uuid": "6d136d51-390a-46a7-b42b-fdecff7b622a",
75
75
  "slug": "accumulate",
76
+ "uuid": "6d136d51-390a-46a7-b42b-fdecff7b622a",
76
77
  "core": true,
77
78
  "unlocked_by": null,
78
79
  "difficulty": 2,
79
80
  "topics": [
80
- "Generics",
81
- "Lists",
82
- "Transforming"
81
+ "generics",
82
+ "lists",
83
+ "transforming"
83
84
  ]
84
85
  },
85
86
  {
86
- "uuid": "825e94e5-6fc8-4dce-befe-74e1516fae14",
87
87
  "slug": "flatten-array",
88
+ "uuid": "825e94e5-6fc8-4dce-befe-74e1516fae14",
88
89
  "core": false,
89
90
  "unlocked_by": "accumulate",
90
91
  "difficulty": 2,
91
92
  "topics": [
92
- "Recursion",
93
- "Lists",
94
- "Pattern matching"
93
+ "lists",
94
+ "pattern_matching",
95
+ "recursion"
95
96
  ]
96
97
  },
97
98
  {
98
- "uuid": "65a76aba-a485-222d-84ba-e9a445b25be6",
99
99
  "slug": "collatz-conjecture",
100
+ "uuid": "65a76aba-a485-222d-84ba-e9a445b25be6",
100
101
  "core": false,
101
102
  "unlocked_by": "leap",
102
103
  "difficulty": 2,
103
104
  "topics": [
104
- "Recursion",
105
- "Mathematics"
105
+ "mathematics",
106
+ "recursion"
106
107
  ]
107
108
  },
108
109
  {
109
- "uuid": "2bd9ab9e-ecc4-4331-984d-8e5f15f775b4",
110
110
  "slug": "armstrong-numbers",
111
+ "uuid": "2bd9ab9e-ecc4-4331-984d-8e5f15f775b4",
111
112
  "core": false,
112
113
  "unlocked_by": "leap",
113
114
  "difficulty": 2,
114
115
  "topics": [
115
- "Integers",
116
- "Mathematics"
116
+ "integers",
117
+ "mathematics"
117
118
  ]
118
119
  },
119
120
  {
120
- "uuid": "5a31217f-02fd-4be4-b64f-7a93f36f5140",
121
121
  "slug": "hamming",
122
+ "uuid": "5a31217f-02fd-4be4-b64f-7a93f36f5140",
122
123
  "core": true,
123
124
  "unlocked_by": null,
124
125
  "difficulty": 3,
125
126
  "topics": [
126
- "Strings",
127
- "Filtering",
128
- "Optional values"
127
+ "filtering",
128
+ "optional_values",
129
+ "strings"
129
130
  ]
130
131
  },
131
132
  {
132
- "uuid": "d21f16ce-8e6e-436e-918b-e973cfc7c2a0",
133
133
  "slug": "etl",
134
+ "uuid": "d21f16ce-8e6e-436e-918b-e973cfc7c2a0",
134
135
  "core": true,
135
136
  "unlocked_by": null,
136
137
  "difficulty": 3,
137
138
  "topics": [
138
- "Lists",
139
- "Maps",
140
- "Sequences",
141
- "Strings",
142
- "Transforming"
139
+ "lists",
140
+ "maps",
141
+ "sequences",
142
+ "strings",
143
+ "transforming"
143
144
  ]
144
145
  },
145
146
  {
146
- "uuid": "612b8880-1dd1-410d-b530-c66ec9edc1b3",
147
147
  "slug": "perfect-numbers",
148
+ "uuid": "612b8880-1dd1-410d-b530-c66ec9edc1b3",
148
149
  "core": true,
149
150
  "unlocked_by": null,
150
151
  "difficulty": 3,
151
152
  "topics": [
152
- "Discriminated unions",
153
- "Enumerations",
154
- "Integers",
155
- "Mathematics"
153
+ "discriminated_unions",
154
+ "enumerations",
155
+ "integers",
156
+ "mathematics"
156
157
  ]
157
158
  },
158
159
  {
159
- "uuid": "e810d2eb-5c90-4135-8db8-0bda54a33d2e",
160
160
  "slug": "secret-handshake",
161
+ "uuid": "e810d2eb-5c90-4135-8db8-0bda54a33d2e",
161
162
  "core": true,
162
163
  "unlocked_by": null,
163
164
  "difficulty": 3,
164
165
  "topics": [
165
- "Lists",
166
- "Strings",
167
- "Bitwise operations"
166
+ "bitwise_operations",
167
+ "lists",
168
+ "strings"
168
169
  ]
169
170
  },
170
171
  {
171
- "uuid": "261f75c1-df67-4c62-a2e9-ce13550f5de3",
172
172
  "slug": "robot-simulator",
173
+ "uuid": "261f75c1-df67-4c62-a2e9-ce13550f5de3",
173
174
  "core": true,
174
175
  "unlocked_by": null,
175
176
  "difficulty": 3,
176
177
  "topics": [
177
- "Enumerations",
178
- "Tuples"
178
+ "enumerations",
179
+ "tuples"
179
180
  ]
180
181
  },
181
182
  {
182
- "uuid": "c6c37479-a030-44ba-9da5-97eb77233ac6",
183
183
  "slug": "matrix",
184
+ "uuid": "c6c37479-a030-44ba-9da5-97eb77233ac6",
184
185
  "core": true,
185
186
  "unlocked_by": null,
186
187
  "difficulty": 4,
187
188
  "topics": [
188
- "Strings",
189
- "Matrices",
190
- "Parsing",
191
- "Vectors"
189
+ "matrices",
190
+ "parsing",
191
+ "strings",
192
+ "vectors"
192
193
  ]
193
194
  },
194
195
  {
195
- "uuid": "5ce09233-9ec1-4422-aa97-2d90ea67146b",
196
196
  "slug": "book-store",
197
+ "uuid": "5ce09233-9ec1-4422-aa97-2d90ea67146b",
197
198
  "core": true,
198
199
  "unlocked_by": null,
199
200
  "difficulty": 5,
200
201
  "topics": [
201
- "Recursion"
202
+ "recursion"
202
203
  ]
203
204
  },
204
205
  {
205
- "uuid": "4c3710dc-fac2-4056-b4ac-945b67c08068",
206
206
  "slug": "gigasecond",
207
+ "uuid": "4c3710dc-fac2-4056-b4ac-945b67c08068",
207
208
  "core": false,
208
209
  "unlocked_by": null,
209
210
  "difficulty": 1,
210
211
  "topics": [
211
- "Dates",
212
- "Time",
213
- "Function Overloading"
212
+ "dates",
213
+ "function_overloading",
214
+ "time"
214
215
  ]
215
216
  },
216
217
  {
217
- "uuid": "1fe9f43a-7774-4fbd-864b-eff7749ebbc6",
218
218
  "slug": "difference-of-squares",
219
+ "uuid": "1fe9f43a-7774-4fbd-864b-eff7749ebbc6",
219
220
  "core": false,
220
221
  "unlocked_by": null,
221
222
  "difficulty": 1,
222
223
  "topics": [
223
- "Integers",
224
- "Mathematics"
224
+ "integers",
225
+ "mathematics"
225
226
  ]
226
227
  },
227
228
  {
228
- "uuid": "e6f96ae1-6736-42f4-b74d-14a4aa8aa5fc",
229
229
  "slug": "pangram",
230
+ "uuid": "e6f96ae1-6736-42f4-b74d-14a4aa8aa5fc",
230
231
  "core": false,
231
232
  "unlocked_by": null,
232
233
  "difficulty": 2,
233
234
  "topics": [
234
- "Strings"
235
+ "strings"
235
236
  ]
236
237
  },
237
238
  {
238
- "uuid": "54ff0017-7c53-4e83-a3bd-aff2953185b7",
239
239
  "slug": "raindrops",
240
+ "uuid": "54ff0017-7c53-4e83-a3bd-aff2953185b7",
240
241
  "core": false,
241
242
  "unlocked_by": "accumulate",
242
243
  "difficulty": 2,
243
244
  "topics": [
244
- "Strings",
245
- "Logic",
246
- "Transforming"
245
+ "logic",
246
+ "strings",
247
+ "transforming"
247
248
  ]
248
249
  },
249
250
  {
250
- "uuid": "d7f7b64e-1dba-400e-a9c1-acd521d21753",
251
251
  "slug": "phone-number",
252
+ "uuid": "d7f7b64e-1dba-400e-a9c1-acd521d21753",
252
253
  "core": false,
253
254
  "unlocked_by": "hamming",
254
255
  "difficulty": 3,
255
256
  "topics": [
256
- "Optional values",
257
- "Strings",
258
- "Parsing",
259
- "Transforming"
257
+ "optional_values",
258
+ "parsing",
259
+ "strings",
260
+ "transforming"
260
261
  ]
261
262
  },
262
263
  {
263
- "uuid": "d3a10b82-ae65-4a99-968d-4f1bec62b88a",
264
264
  "slug": "strain",
265
+ "uuid": "d3a10b82-ae65-4a99-968d-4f1bec62b88a",
265
266
  "core": false,
266
267
  "unlocked_by": "hamming",
267
268
  "difficulty": 3,
268
269
  "topics": [
269
- "Generics",
270
- "Sequences",
271
- "Filtering"
270
+ "filtering",
271
+ "generics",
272
+ "sequences"
272
273
  ]
273
274
  },
274
275
  {
275
- "uuid": "d06505fb-3844-481a-bf7a-4e05545119f0",
276
276
  "slug": "robot-name",
277
+ "uuid": "d06505fb-3844-481a-bf7a-4e05545119f0",
277
278
  "core": false,
278
279
  "unlocked_by": "hello-world",
279
280
  "difficulty": 3,
280
281
  "topics": [
281
- "Strings",
282
- "Randomness"
282
+ "randomness",
283
+ "strings"
283
284
  ]
284
285
  },
285
286
  {
286
- "uuid": "39b2350c-60b5-4da0-9fb9-26f75a4bad6d",
287
287
  "slug": "grains",
288
+ "uuid": "39b2350c-60b5-4da0-9fb9-26f75a4bad6d",
288
289
  "core": false,
289
290
  "unlocked_by": "hamming",
290
291
  "difficulty": 3,
291
292
  "topics": [
292
- "Optional values",
293
- "Mathematics"
293
+ "mathematics",
294
+ "optional_values"
294
295
  ]
295
296
  },
296
297
  {
297
- "uuid": "a4797d24-9293-41b2-b630-3ac9e3840d47",
298
298
  "slug": "scrabble-score",
299
+ "uuid": "a4797d24-9293-41b2-b630-3ac9e3840d47",
299
300
  "core": false,
300
301
  "unlocked_by": "accumulate",
301
302
  "difficulty": 3,
302
303
  "topics": [
303
- "Strings",
304
- "Transforming"
304
+ "strings",
305
+ "transforming"
305
306
  ]
306
307
  },
307
308
  {
308
- "uuid": "fc58b128-24a8-48e7-90db-b4843fbdf40a",
309
309
  "slug": "rna-transcription",
310
+ "uuid": "fc58b128-24a8-48e7-90db-b4843fbdf40a",
310
311
  "core": false,
311
312
  "unlocked_by": "hamming",
312
313
  "difficulty": 3,
313
314
  "topics": [
314
- "Optional values",
315
- "Strings",
316
- "Transforming"
315
+ "optional_values",
316
+ "strings",
317
+ "transforming"
317
318
  ]
318
319
  },
319
320
  {
320
- "uuid": "2be75924-fce4-49fa-b52e-6cdcf222b283",
321
321
  "slug": "triangle",
322
+ "uuid": "2be75924-fce4-49fa-b52e-6cdcf222b283",
322
323
  "core": false,
323
324
  "unlocked_by": "leap",
324
325
  "difficulty": 3,
325
326
  "topics": [
326
- "Mathematics"
327
+ "mathematics"
327
328
  ]
328
329
  },
329
330
  {
330
- "uuid": "f653decb-f7fa-47ff-81a6-2b3981261ea7",
331
331
  "slug": "binary-search",
332
+ "uuid": "f653decb-f7fa-47ff-81a6-2b3981261ea7",
332
333
  "core": false,
333
334
  "unlocked_by": "hamming",
334
335
  "difficulty": 3,
335
336
  "topics": [
336
- "Searching",
337
- "Arrays",
338
- "Optional values"
337
+ "arrays",
338
+ "optional_values",
339
+ "searching"
339
340
  ]
340
341
  },
341
342
  {
342
- "uuid": "9f5ee7aa-943b-4151-8530-def1428fc00f",
343
343
  "slug": "sieve",
344
+ "uuid": "9f5ee7aa-943b-4151-8530-def1428fc00f",
344
345
  "core": false,
345
346
  "unlocked_by": "sum-of-multiples",
346
347
  "difficulty": 3,
347
348
  "topics": [
348
- "Filtering",
349
- "Mathematics",
350
- "Lists"
349
+ "filtering",
350
+ "lists",
351
+ "mathematics"
351
352
  ]
352
353
  },
353
354
  {
354
- "uuid": "f6d61a0e-068b-4519-8d4d-563713be6168",
355
355
  "slug": "isogram",
356
+ "uuid": "f6d61a0e-068b-4519-8d4d-563713be6168",
356
357
  "core": false,
357
358
  "unlocked_by": "sum-of-multiples",
358
359
  "difficulty": 3,
359
360
  "topics": [
360
- "Strings",
361
- "Filtering"
361
+ "filtering",
362
+ "strings"
362
363
  ]
363
364
  },
364
365
  {
365
- "uuid": "a6a06d7f-af28-4c42-a870-0de2c9e896c2",
366
366
  "slug": "clock",
367
+ "uuid": "a6a06d7f-af28-4c42-a870-0de2c9e896c2",
367
368
  "core": false,
368
369
  "unlocked_by": "space-age",
369
370
  "difficulty": 3,
370
371
  "topics": [
371
- "Time",
372
- "Structural equality"
372
+ "structural_equality",
373
+ "time"
373
374
  ]
374
375
  },
375
376
  {
376
- "uuid": "e6a3354e-dd32-413f-856d-53c81bd0d728",
377
377
  "slug": "protein-translation",
378
+ "uuid": "e6a3354e-dd32-413f-856d-53c81bd0d728",
378
379
  "core": false,
379
380
  "unlocked_by": "accumulate",
380
381
  "difficulty": 3,
381
382
  "topics": [
382
- "Strings",
383
- "Transforming",
384
- "Sequences"
383
+ "sequences",
384
+ "strings",
385
+ "transforming"
385
386
  ]
386
387
  },
387
388
  {
388
- "uuid": "15047d95-671b-4163-96b2-834ec54ea3d5",
389
389
  "slug": "beer-song",
390
+ "uuid": "15047d95-671b-4163-96b2-834ec54ea3d5",
390
391
  "core": false,
391
392
  "unlocked_by": "hello-world",
392
393
  "difficulty": 3,
393
394
  "topics": [
394
- "Text formatting",
395
- "Algorithms",
396
- "Control-flow",
397
- "Strings"
395
+ "algorithms",
396
+ "control_flow",
397
+ "strings",
398
+ "text_formatting"
398
399
  ]
399
400
  },
400
401
  {
401
- "uuid": "73770426-74a8-498f-a37c-1b12aaf71281",
402
402
  "slug": "house",
403
+ "uuid": "73770426-74a8-498f-a37c-1b12aaf71281",
403
404
  "core": false,
404
405
  "unlocked_by": "hello-world",
405
406
  "difficulty": 4,
406
407
  "topics": [
407
- "Strings",
408
- "Text formatting",
409
- "Algorithms"
408
+ "algorithms",
409
+ "strings",
410
+ "text_formatting"
410
411
  ]
411
412
  },
412
413
  {
413
- "uuid": "35a0ff51-6c85-4a39-8017-62e8eabd1c21",
414
414
  "slug": "series",
415
+ "uuid": "35a0ff51-6c85-4a39-8017-62e8eabd1c21",
415
416
  "core": false,
416
417
  "unlocked_by": "accumulate",
417
418
  "difficulty": 4,
418
419
  "topics": [
419
- "Strings",
420
- "Sequences",
421
- "Transforming"
420
+ "sequences",
421
+ "strings",
422
+ "transforming"
422
423
  ]
423
424
  },
424
425
  {
425
- "uuid": "10c53e9d-8fa6-486c-b68a-be821dec5010",
426
426
  "slug": "word-count",
427
+ "uuid": "10c53e9d-8fa6-486c-b68a-be821dec5010",
427
428
  "core": false,
428
429
  "unlocked_by": "grade-school",
429
430
  "difficulty": 4,
430
431
  "topics": [
431
- "Maps",
432
- "Strings",
433
- "Transforming"
432
+ "maps",
433
+ "strings",
434
+ "transforming"
434
435
  ]
435
436
  },
436
437
  {
437
- "uuid": "54633841-b60f-49a0-9f95-aeda09de6232",
438
438
  "slug": "anagram",
439
+ "uuid": "54633841-b60f-49a0-9f95-aeda09de6232",
439
440
  "core": false,
440
441
  "unlocked_by": "sum-of-multiples",
441
442
  "difficulty": 4,
442
443
  "topics": [
443
- "Sequences",
444
- "Strings",
445
- "Filtering"
444
+ "filtering",
445
+ "sequences",
446
+ "strings"
446
447
  ]
447
448
  },
448
449
  {
449
- "uuid": "c03319c6-1a2b-4f26-a943-242ccc6a295e",
450
450
  "slug": "nucleotide-count",
451
+ "uuid": "c03319c6-1a2b-4f26-a943-242ccc6a295e",
451
452
  "core": false,
452
453
  "unlocked_by": "grade-school",
453
454
  "difficulty": 4,
454
455
  "topics": [
455
- "Maps",
456
- "Strings"
456
+ "maps",
457
+ "strings"
457
458
  ]
458
459
  },
459
460
  {
460
- "uuid": "50a7cf00-7f5e-4f38-9a13-c8ff5c895723",
461
461
  "slug": "meetup",
462
+ "uuid": "50a7cf00-7f5e-4f38-9a13-c8ff5c895723",
462
463
  "core": false,
463
464
  "unlocked_by": "space-age",
464
465
  "difficulty": 4,
465
466
  "topics": [
466
- "Dates"
467
+ "dates"
467
468
  ]
468
469
  },
469
470
  {
470
- "uuid": "49d45a39-c8de-4b25-9ee2-5e08de8721c0",
471
471
  "slug": "prime-factors",
472
+ "uuid": "49d45a39-c8de-4b25-9ee2-5e08de8721c0",
472
473
  "core": false,
473
474
  "unlocked_by": "leap",
474
475
  "difficulty": 4,
475
476
  "topics": [
476
- "Lists",
477
- "Integers",
478
- "Algorithms",
479
- "Mathematics"
477
+ "algorithms",
478
+ "integers",
479
+ "lists",
480
+ "mathematics"
480
481
  ]
481
482
  },
482
483
  {
483
- "uuid": "8e311809-1de4-44c3-923a-ffd863843e6b",
484
484
  "slug": "allergies",
485
+ "uuid": "8e311809-1de4-44c3-923a-ffd863843e6b",
485
486
  "core": false,
486
487
  "unlocked_by": "perfect-numbers",
487
488
  "difficulty": 4,
488
489
  "topics": [
489
- "Lists",
490
- "Enumerations",
491
- "Filtering"
490
+ "enumerations",
491
+ "filtering",
492
+ "lists"
492
493
  ]
493
494
  },
494
495
  {
495
- "uuid": "adcf2a9b-2f6c-490f-b441-ad413a03fee7",
496
496
  "slug": "all-your-base",
497
+ "uuid": "adcf2a9b-2f6c-490f-b441-ad413a03fee7",
497
498
  "core": false,
498
499
  "unlocked_by": "accumulate",
499
500
  "difficulty": 4,
500
501
  "topics": [
501
- "Integers",
502
- "Lists",
503
- "Optional values",
504
- "Mathematics",
505
- "Transforming"
502
+ "integers",
503
+ "lists",
504
+ "mathematics",
505
+ "optional_values",
506
+ "transforming"
506
507
  ]
507
508
  },
508
509
  {
509
- "uuid": "1218f854-ebb9-40dd-9487-ccc4d09c9a43",
510
510
  "slug": "kindergarten-garden",
511
+ "uuid": "1218f854-ebb9-40dd-9487-ccc4d09c9a43",
511
512
  "core": false,
512
513
  "unlocked_by": "accumulate",
513
514
  "difficulty": 4,
514
515
  "topics": [
515
- "Enumerations",
516
- "Transforming",
517
- "Lists"
516
+ "enumerations",
517
+ "lists",
518
+ "transforming"
518
519
  ]
519
520
  },
520
521
  {
521
- "uuid": "7e81f24e-c892-4e45-b0bb-6c6420ba1f0e",
522
522
  "slug": "largest-series-product",
523
+ "uuid": "7e81f24e-c892-4e45-b0bb-6c6420ba1f0e",
523
524
  "core": false,
524
525
  "unlocked_by": "accumulate",
525
526
  "difficulty": 4,
526
527
  "topics": [
527
- "Strings",
528
- "Integers",
529
- "Optional values",
530
- "Transforming",
531
- "Mathematics"
528
+ "integers",
529
+ "mathematics",
530
+ "optional_values",
531
+ "strings",
532
+ "transforming"
532
533
  ]
533
534
  },
534
535
  {
535
- "uuid": "34a134c4-f9f5-46c4-97db-2f6c8c1e97f5",
536
536
  "slug": "pascals-triangle",
537
+ "uuid": "34a134c4-f9f5-46c4-97db-2f6c8c1e97f5",
537
538
  "core": false,
538
539
  "unlocked_by": "leap",
539
540
  "difficulty": 4,
540
541
  "topics": [
541
- "Control-flow (loops)",
542
- "Lists",
543
- "Mathematics"
542
+ "control_flow_loops",
543
+ "lists",
544
+ "mathematics"
544
545
  ]
545
546
  },
546
547
  {
547
- "uuid": "0e858f22-401b-44ad-b972-766e2f38e5d5",
548
548
  "slug": "pythagorean-triplet",
549
+ "uuid": "0e858f22-401b-44ad-b972-766e2f38e5d5",
549
550
  "core": false,
550
551
  "unlocked_by": "robot-simulator",
551
552
  "difficulty": 4,
552
553
  "topics": [
553
- "Integers",
554
- "Mathematics",
555
- "Sequences",
556
- "Tuples"
554
+ "integers",
555
+ "mathematics",
556
+ "sequences",
557
+ "tuples"
557
558
  ]
558
559
  },
559
560
  {
560
- "uuid": "aa135256-28c8-4e3e-a942-8ae5ae996ab5",
561
561
  "slug": "saddle-points",
562
+ "uuid": "aa135256-28c8-4e3e-a942-8ae5ae996ab5",
562
563
  "core": false,
563
564
  "unlocked_by": "perfect-numbers",
564
565
  "difficulty": 4,
565
566
  "topics": [
566
- "Matrices",
567
- "Lists",
568
- "Sets",
569
- "Tuples"
567
+ "lists",
568
+ "matrices",
569
+ "sets",
570
+ "tuples"
570
571
  ]
571
572
  },
572
573
  {
573
- "uuid": "876a07ce-0ee4-4ded-bab3-c9b3f8746d57",
574
574
  "slug": "acronym",
575
+ "uuid": "876a07ce-0ee4-4ded-bab3-c9b3f8746d57",
575
576
  "core": false,
576
577
  "unlocked_by": "accumulate",
577
578
  "difficulty": 4,
578
579
  "topics": [
579
- "Strings",
580
- "Transforming"
580
+ "strings",
581
+ "transforming"
581
582
  ]
582
583
  },
583
584
  {
584
- "uuid": "163d247a-1763-4876-870a-63deb3a3daa8",
585
585
  "slug": "run-length-encoding",
586
+ "uuid": "163d247a-1763-4876-870a-63deb3a3daa8",
586
587
  "core": false,
587
588
  "unlocked_by": "accumulate",
588
589
  "difficulty": 5,
589
590
  "topics": [
590
- "Algorithms",
591
- "Transforming",
592
- "Strings"
591
+ "algorithms",
592
+ "strings",
593
+ "transforming"
593
594
  ]
594
595
  },
595
596
  {
596
- "uuid": "4c08ec90-4c5a-4dae-812c-52899b1a29cf",
597
597
  "slug": "roman-numerals",
598
+ "uuid": "4c08ec90-4c5a-4dae-812c-52899b1a29cf",
598
599
  "core": false,
599
600
  "unlocked_by": "accumulate",
600
601
  "difficulty": 5,
601
602
  "topics": [
602
- "Sequences",
603
- "Algorithms",
604
- "Transforming"
603
+ "algorithms",
604
+ "sequences",
605
+ "transforming"
605
606
  ]
606
607
  },
607
608
  {
608
- "uuid": "168823e4-de57-40c0-ac8d-bec6ccf9c96d",
609
609
  "slug": "simple-linked-list",
610
+ "uuid": "168823e4-de57-40c0-ac8d-bec6ccf9c96d",
610
611
  "core": false,
611
612
  "unlocked_by": "hamming",
612
613
  "difficulty": 5,
613
614
  "topics": [
614
- "Classes",
615
- "Lists",
616
- "Transforming",
617
- "Generics"
615
+ "classes",
616
+ "generics",
617
+ "lists",
618
+ "transforming"
618
619
  ]
619
620
  },
620
621
  {
621
- "uuid": "842f0674-fcf3-48c3-80ae-c6d43c65f270",
622
622
  "slug": "atbash-cipher",
623
+ "uuid": "842f0674-fcf3-48c3-80ae-c6d43c65f270",
623
624
  "core": false,
624
625
  "unlocked_by": "accumulate",
625
626
  "difficulty": 5,
626
627
  "topics": [
627
- "Strings",
628
- "Transforming",
629
- "Security"
628
+ "security",
629
+ "strings",
630
+ "transforming"
630
631
  ]
631
632
  },
632
633
  {
633
- "uuid": "6e379741-8337-41f3-9790-dc93cacdc9b6",
634
634
  "slug": "simple-cipher",
635
+ "uuid": "6e379741-8337-41f3-9790-dc93cacdc9b6",
635
636
  "core": false,
636
637
  "unlocked_by": "hamming",
637
638
  "difficulty": 5,
638
639
  "topics": [
639
- "Optional values",
640
- "Strings",
641
- "Algorithms",
642
- "Transforming"
640
+ "algorithms",
641
+ "optional_values",
642
+ "strings",
643
+ "transforming"
643
644
  ]
644
645
  },
645
646
  {
646
- "uuid": "ec0334d9-df30-4e61-bea6-bd3f7c8d13e6",
647
647
  "slug": "bank-account",
648
+ "uuid": "ec0334d9-df30-4e61-bea6-bd3f7c8d13e6",
648
649
  "core": false,
649
650
  "unlocked_by": "robot-simulator",
650
651
  "difficulty": 5,
651
652
  "topics": [
652
- "Parallellism"
653
+ "parallellism"
653
654
  ]
654
655
  },
655
656
  {
656
- "uuid": "b047cdd2-5afa-47a0-b48d-5c235c1099dc",
657
657
  "slug": "crypto-square",
658
+ "uuid": "b047cdd2-5afa-47a0-b48d-5c235c1099dc",
658
659
  "core": false,
659
660
  "unlocked_by": "etl",
660
661
  "difficulty": 5,
661
662
  "topics": [
662
- "Strings",
663
- "Lists",
664
- "Security",
665
- "Transforming"
663
+ "lists",
664
+ "security",
665
+ "strings",
666
+ "transforming"
666
667
  ]
667
668
  },
668
669
  {
669
- "uuid": "9d25bf46-52d6-435e-a384-38c25517f8ee",
670
670
  "slug": "bracket-push",
671
+ "uuid": "9d25bf46-52d6-435e-a384-38c25517f8ee",
671
672
  "core": false,
672
673
  "unlocked_by": "hello-world",
673
674
  "difficulty": 5,
674
675
  "topics": [
675
- "Strings",
676
- "Parsing"
676
+ "parsing",
677
+ "strings"
677
678
  ]
678
679
  },
679
680
  {
680
- "uuid": "1af833c7-2e0d-4c96-a3a9-d4812df5d1a1",
681
681
  "slug": "queen-attack",
682
+ "uuid": "1af833c7-2e0d-4c96-a3a9-d4812df5d1a1",
682
683
  "core": false,
683
684
  "unlocked_by": "hamming",
684
685
  "difficulty": 5,
685
686
  "topics": [
686
- "Strings",
687
- "Optional values",
688
- "Logic",
689
- "Games"
687
+ "games",
688
+ "logic",
689
+ "optional_values",
690
+ "strings"
690
691
  ]
691
692
  },
692
693
  {
693
- "uuid": "8956383c-bea2-4bcc-b7af-df19f94e15e6",
694
694
  "slug": "luhn",
695
+ "uuid": "8956383c-bea2-4bcc-b7af-df19f94e15e6",
695
696
  "core": false,
696
697
  "unlocked_by": "accumulate",
697
698
  "difficulty": 5,
698
699
  "topics": [
699
- "Strings",
700
- "Algorithms",
701
- "Transforming"
700
+ "algorithms",
701
+ "strings",
702
+ "transforming"
702
703
  ]
703
704
  },
704
705
  {
705
- "uuid": "60deb77c-45f2-48a1-bff8-b0cef3b07500",
706
706
  "slug": "food-chain",
707
+ "uuid": "60deb77c-45f2-48a1-bff8-b0cef3b07500",
707
708
  "core": false,
708
709
  "unlocked_by": "hello-world",
709
710
  "difficulty": 5,
710
711
  "topics": [
711
- "Text formatting",
712
- "Algorithms"
712
+ "algorithms",
713
+ "text_formatting"
713
714
  ]
714
715
  },
715
716
  {
716
- "uuid": "bec1be3e-2d1c-4cb7-9398-dd0249e79d2e",
717
717
  "slug": "linked-list",
718
+ "uuid": "bec1be3e-2d1c-4cb7-9398-dd0249e79d2e",
718
719
  "core": false,
719
720
  "unlocked_by": "hamming",
720
721
  "difficulty": 5,
721
722
  "topics": [
722
- "Lists",
723
- "Generics",
724
- "Optional values"
723
+ "generics",
724
+ "lists",
725
+ "optional_values"
725
726
  ]
726
727
  },
727
728
  {
728
- "uuid": "e0810022-d3ea-463a-97da-dfdac08e3c63",
729
729
  "slug": "spiral-matrix",
730
+ "uuid": "e0810022-d3ea-463a-97da-dfdac08e3c63",
730
731
  "core": false,
731
732
  "unlocked_by": "leap",
732
733
  "difficulty": 5,
733
734
  "topics": [
734
- "Matrices"
735
+ "matrices"
735
736
  ]
736
737
  },
737
738
  {
738
- "uuid": "0605da19-048e-4a1f-b508-5d77d1e384a5",
739
739
  "slug": "custom-set",
740
+ "uuid": "0605da19-048e-4a1f-b508-5d77d1e384a5",
740
741
  "core": false,
741
742
  "unlocked_by": "accumulate",
742
743
  "difficulty": 5,
743
744
  "topics": [
744
- "Sets",
745
- "Lists",
746
- "Generics"
745
+ "generics",
746
+ "lists",
747
+ "sets"
747
748
  ]
748
749
  },
749
750
  {
750
- "uuid": "a557f7e3-9fc0-4cd8-bab1-b4d8fc88402d",
751
751
  "slug": "parallel-letter-frequency",
752
+ "uuid": "a557f7e3-9fc0-4cd8-bab1-b4d8fc88402d",
752
753
  "core": false,
753
754
  "unlocked_by": "grade-school",
754
755
  "difficulty": 5,
755
756
  "topics": [
756
- "Maps",
757
- "Sequences",
758
- "Strings",
759
- "Parallellism",
760
- "Transforming",
761
- "Dictionaries"
757
+ "dictionaries",
758
+ "maps",
759
+ "parallellism",
760
+ "sequences",
761
+ "strings",
762
+ "transforming"
762
763
  ]
763
764
  },
764
765
  {
765
- "uuid": "c7838d98-35db-4a84-914e-c05cafda2bed",
766
766
  "slug": "nth-prime",
767
+ "uuid": "c7838d98-35db-4a84-914e-c05cafda2bed",
767
768
  "core": false,
768
769
  "unlocked_by": "leap",
769
770
  "difficulty": 6,
770
771
  "topics": [
771
- "Optional values",
772
- "Algorithms",
773
- "Mathematics"
772
+ "algorithms",
773
+ "mathematics",
774
+ "optional_values"
774
775
  ]
775
776
  },
776
777
  {
777
- "uuid": "fc57c00f-ca56-499d-bb46-0ce006b60923",
778
778
  "slug": "palindrome-products",
779
+ "uuid": "fc57c00f-ca56-499d-bb46-0ce006b60923",
779
780
  "core": false,
780
781
  "unlocked_by": "sum-of-multiples",
781
782
  "difficulty": 6,
782
783
  "topics": [
783
- "Optional values",
784
- "Sets",
785
- "Strings",
786
- "Tuples",
787
- "Algorithms"
784
+ "algorithms",
785
+ "optional_values",
786
+ "sets",
787
+ "strings",
788
+ "tuples"
788
789
  ]
789
790
  },
790
791
  {
791
- "uuid": "221be13e-da2a-4f0a-9702-84744cbcaca6",
792
792
  "slug": "ocr-numbers",
793
+ "uuid": "221be13e-da2a-4f0a-9702-84744cbcaca6",
793
794
  "core": false,
794
795
  "unlocked_by": "accumulate",
795
796
  "difficulty": 6,
796
797
  "topics": [
797
- "Lists",
798
- "Strings",
799
- "Parsing",
800
- "Pattern recognition",
801
- "Transforming"
798
+ "lists",
799
+ "parsing",
800
+ "pattern_recognition",
801
+ "strings",
802
+ "transforming"
802
803
  ]
803
804
  },
804
805
  {
805
- "uuid": "088e1441-a648-4dc4-ad13-c5fdd8e8a104",
806
806
  "slug": "pig-latin",
807
+ "uuid": "088e1441-a648-4dc4-ad13-c5fdd8e8a104",
807
808
  "core": false,
808
809
  "unlocked_by": "accumulate",
809
810
  "difficulty": 6,
810
811
  "topics": [
811
- "Strings",
812
- "Transforming"
812
+ "strings",
813
+ "transforming"
813
814
  ]
814
815
  },
815
816
  {
816
- "uuid": "f70d2b0c-9660-4538-9897-2f233b93d0c3",
817
817
  "slug": "binary-search-tree",
818
+ "uuid": "f70d2b0c-9660-4538-9897-2f233b93d0c3",
818
819
  "core": false,
819
820
  "unlocked_by": "hamming",
820
821
  "difficulty": 6,
821
822
  "topics": [
822
- "Searching",
823
- "Lists",
824
- "Trees",
825
- "Generics"
823
+ "generics",
824
+ "lists",
825
+ "searching",
826
+ "trees"
826
827
  ]
827
828
  },
828
829
  {
829
- "uuid": "755b5cf5-97f2-41c1-9b0b-24e6db68b7eb",
830
830
  "slug": "rail-fence-cipher",
831
+ "uuid": "755b5cf5-97f2-41c1-9b0b-24e6db68b7eb",
831
832
  "core": false,
832
833
  "unlocked_by": "accumulate",
833
834
  "difficulty": 6,
834
835
  "topics": [
835
- "Strings",
836
- "Algorithms",
837
- "Transforming"
836
+ "algorithms",
837
+ "strings",
838
+ "transforming"
838
839
  ]
839
840
  },
840
841
  {
841
- "uuid": "9ea2b27f-4c3a-463d-8869-4e930808ce93",
842
842
  "slug": "bowling",
843
+ "uuid": "9ea2b27f-4c3a-463d-8869-4e930808ce93",
843
844
  "core": false,
844
845
  "unlocked_by": "etl",
845
846
  "difficulty": 6,
846
847
  "topics": [
847
- "Algorithms",
848
- "Control-flow (if-else statements)",
849
- "Lists"
848
+ "algorithms",
849
+ "control_flow_if_else_statements",
850
+ "lists"
850
851
  ]
851
852
  },
852
853
  {
853
- "uuid": "d619cdc2-b8b7-442d-a2b2-41383c33d219",
854
854
  "slug": "dominoes",
855
+ "uuid": "d619cdc2-b8b7-442d-a2b2-41383c33d219",
855
856
  "core": false,
856
857
  "unlocked_by": "hamming",
857
858
  "difficulty": 7,
858
859
  "topics": [
859
- "Lists",
860
- "Optional values",
861
- "Tuples",
862
- "Games"
860
+ "games",
861
+ "lists",
862
+ "optional_values",
863
+ "tuples"
863
864
  ]
864
865
  },
865
866
  {
866
- "uuid": "00a09826-f63b-4558-8ad0-6cdb7836dfea",
867
867
  "slug": "sublist",
868
+ "uuid": "00a09826-f63b-4558-8ad0-6cdb7836dfea",
868
869
  "core": false,
869
870
  "unlocked_by": "hamming",
870
871
  "difficulty": 7,
871
872
  "topics": [
872
- "Generics",
873
- "Enumerations",
874
- "Lists"
873
+ "enumerations",
874
+ "generics",
875
+ "lists"
875
876
  ]
876
877
  },
877
878
  {
878
- "uuid": "04c3197c-cd3d-4853-af3f-50c189af80c7",
879
879
  "slug": "minesweeper",
880
+ "uuid": "04c3197c-cd3d-4853-af3f-50c189af80c7",
880
881
  "core": false,
881
882
  "unlocked_by": "accumulate",
882
883
  "difficulty": 7,
883
884
  "topics": [
884
- "Lists",
885
- "Strings",
886
- "Parsing",
887
- "Transforming"
885
+ "lists",
886
+ "parsing",
887
+ "strings",
888
+ "transforming"
888
889
  ]
889
890
  },
890
891
  {
891
- "uuid": "ded3ae4c-43a7-46df-b43b-42aab419c2d8",
892
892
  "slug": "wordy",
893
+ "uuid": "ded3ae4c-43a7-46df-b43b-42aab419c2d8",
893
894
  "core": false,
894
895
  "unlocked_by": "perfect-numbers",
895
896
  "difficulty": 7,
896
897
  "topics": [
897
- "Mathematics",
898
- "Optional values",
899
- "Parsing",
900
- "Strings",
901
- "Transforming"
898
+ "mathematics",
899
+ "optional_values",
900
+ "parsing",
901
+ "strings",
902
+ "transforming"
902
903
  ]
903
904
  },
904
905
  {
905
- "uuid": "62dd342a-591c-497f-8f3a-64748952b1af",
906
906
  "slug": "change",
907
+ "uuid": "62dd342a-591c-497f-8f3a-64748952b1af",
907
908
  "core": false,
908
909
  "unlocked_by": "perfect-numbers",
909
910
  "difficulty": 7,
910
911
  "topics": [
911
- "Integers",
912
- "Lists",
913
- "Optional values",
914
- "Mathematics"
912
+ "integers",
913
+ "lists",
914
+ "mathematics",
915
+ "optional_values"
915
916
  ]
916
917
  },
917
918
  {
918
- "uuid": "5ea6b0e1-513e-462f-9741-46f060638a92",
919
919
  "slug": "connect",
920
+ "uuid": "5ea6b0e1-513e-462f-9741-46f060638a92",
920
921
  "core": false,
921
922
  "unlocked_by": "book-store",
922
923
  "difficulty": 8,
923
924
  "topics": [
924
- "Recursion",
925
- "Graphs",
926
- "Optional values",
927
- "Algorithms",
928
- "Games",
929
- "Searching"
925
+ "algorithms",
926
+ "games",
927
+ "graphs",
928
+ "optional_values",
929
+ "recursion",
930
+ "searching"
930
931
  ]
931
932
  },
932
933
  {
933
- "uuid": "eb9387d6-3fac-460b-ad14-657c0f4d2d88",
934
934
  "slug": "zebra-puzzle",
935
+ "uuid": "eb9387d6-3fac-460b-ad14-657c0f4d2d88",
935
936
  "core": false,
936
937
  "unlocked_by": "book-store",
937
938
  "difficulty": 8,
938
939
  "topics": [
939
- "Logic"
940
+ "logic"
940
941
  ]
941
942
  },
942
943
  {
943
- "uuid": "e0e0ef68-6759-42e3-8542-3d165f8900d7",
944
944
  "slug": "say",
945
+ "uuid": "e0e0ef68-6759-42e3-8542-3d165f8900d7",
945
946
  "core": false,
946
947
  "unlocked_by": "hamming",
947
948
  "difficulty": 8,
948
949
  "topics": [
949
- "Strings",
950
- "Transforming",
951
- "Text formatting",
952
- "Optional values"
950
+ "optional_values",
951
+ "strings",
952
+ "text_formatting",
953
+ "transforming"
953
954
  ]
954
955
  },
955
956
  {
956
- "uuid": "64002f5b-e373-4850-92bf-88461d49376e",
957
957
  "slug": "alphametics",
958
+ "uuid": "64002f5b-e373-4850-92bf-88461d49376e",
958
959
  "core": false,
959
960
  "unlocked_by": "grade-school",
960
961
  "difficulty": 9,
961
962
  "topics": [
962
- "Maps",
963
- "Optional values",
964
- "Strings",
965
- "Parsing"
963
+ "maps",
964
+ "optional_values",
965
+ "parsing",
966
+ "strings"
966
967
  ]
967
968
  },
968
969
  {
969
- "uuid": "8b4c7142-6790-4d89-a5cb-fa094e2c969a",
970
970
  "slug": "sgf-parsing",
971
+ "uuid": "8b4c7142-6790-4d89-a5cb-fa094e2c969a",
971
972
  "core": false,
972
973
  "unlocked_by": "accumulate",
973
974
  "difficulty": 9,
974
975
  "topics": [
975
- "Parsing",
976
- "Transforming"
976
+ "parsing",
977
+ "transforming"
977
978
  ]
978
979
  },
979
980
  {
980
- "uuid": "e6e88c52-b984-479d-8b9c-047d25f2aa47",
981
981
  "slug": "lens-person",
982
+ "uuid": "e6e88c52-b984-479d-8b9c-047d25f2aa47",
982
983
  "core": false,
983
984
  "unlocked_by": "grade-school",
984
985
  "difficulty": 9,
985
- "topics": [
986
-
987
- ]
986
+ "topics": []
988
987
  },
989
988
  {
990
- "uuid": "12dbe514-848b-4fd2-868d-7f6195092e23",
991
989
  "slug": "variable-length-quantity",
990
+ "uuid": "12dbe514-848b-4fd2-868d-7f6195092e23",
992
991
  "core": false,
993
992
  "unlocked_by": "accumulate",
994
993
  "difficulty": 9,
995
994
  "topics": [
996
- "Discriminated unions",
997
- "Lists",
998
- "Algorithms",
999
- "Bitwise operations"
995
+ "algorithms",
996
+ "bitwise_operations",
997
+ "discriminated_unions",
998
+ "lists"
1000
999
  ]
1001
1000
  },
1002
1001
  {
1003
- "uuid": "bc5b07e2-f641-4fda-818d-12502cdbb066",
1004
1002
  "slug": "zipper",
1003
+ "uuid": "bc5b07e2-f641-4fda-818d-12502cdbb066",
1005
1004
  "core": false,
1006
1005
  "unlocked_by": "accumulate",
1007
1006
  "difficulty": 10,
1008
1007
  "topics": [
1009
- "Generics",
1010
- "Optional values",
1011
- "Trees"
1008
+ "generics",
1009
+ "optional_values",
1010
+ "trees"
1012
1011
  ]
1013
1012
  },
1014
1013
  {
1015
- "uuid": "2c85199f-4d09-485b-9925-3b21f81ee054",
1016
1014
  "slug": "forth",
1015
+ "uuid": "2c85199f-4d09-485b-9925-3b21f81ee054",
1017
1016
  "core": false,
1018
1017
  "unlocked_by": "leap",
1019
1018
  "difficulty": 10,
1020
1019
  "topics": [
1021
- "Strings",
1022
- "Mathematics",
1023
- "Parsing"
1020
+ "mathematics",
1021
+ "parsing",
1022
+ "strings"
1024
1023
  ]
1025
1024
  },
1026
1025
  {
1027
- "uuid": "6cc53fdc-4423-47fe-abac-7688259b0ac5",
1028
1026
  "slug": "binary",
1027
+ "uuid": "6cc53fdc-4423-47fe-abac-7688259b0ac5",
1028
+ "core": false,
1029
+ "unlocked_by": null,
1030
+ "difficulty": 0,
1031
+ "topics": null,
1029
1032
  "deprecated": true
1030
1033
  },
1031
1034
  {
1032
- "uuid": "7c949a14-70dc-4034-874f-0c9e3217fcf8",
1033
1035
  "slug": "hexadecimal",
1036
+ "uuid": "7c949a14-70dc-4034-874f-0c9e3217fcf8",
1037
+ "core": false,
1038
+ "unlocked_by": null,
1039
+ "difficulty": 0,
1040
+ "topics": null,
1034
1041
  "deprecated": true
1035
1042
  },
1036
1043
  {
1037
- "uuid": "403063a8-9f29-409a-8bf4-a2400521e19b",
1038
1044
  "slug": "octal",
1045
+ "uuid": "403063a8-9f29-409a-8bf4-a2400521e19b",
1046
+ "core": false,
1047
+ "unlocked_by": null,
1048
+ "difficulty": 0,
1049
+ "topics": null,
1039
1050
  "deprecated": true
1040
1051
  },
1041
1052
  {
1042
- "uuid": "616e49fe-b6eb-4384-9af4-b8413d4d0eab",
1043
1053
  "slug": "trinary",
1054
+ "uuid": "616e49fe-b6eb-4384-9af4-b8413d4d0eab",
1055
+ "core": false,
1056
+ "unlocked_by": null,
1057
+ "difficulty": 0,
1058
+ "topics": null,
1044
1059
  "deprecated": true
1045
1060
  }
1046
- ],
1047
- "foregone": [
1048
-
1049
1061
  ]
1050
1062
  }