trackler 2.2.0.2 → 2.2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (415) hide show
  1. checksums.yaml +4 -4
  2. data/fixtures/deprecation-fixtures/tracks/repo-nope/config.json +2 -0
  3. data/fixtures/deprecation-fixtures/tracks/repo-yepp/config.json +3 -0
  4. data/lib/trackler/track.rb +1 -1
  5. data/lib/trackler/version.rb +1 -1
  6. data/tracks/csharp/config/exercise_readme.go.tmpl +16 -0
  7. data/tracks/csharp/exercises/accumulate/README.md +44 -0
  8. data/tracks/csharp/exercises/acronym/README.md +21 -0
  9. data/tracks/csharp/exercises/all-your-base/README.md +41 -0
  10. data/tracks/csharp/exercises/allergies/README.md +46 -0
  11. data/tracks/csharp/exercises/alphametics/README.md +48 -0
  12. data/tracks/csharp/exercises/anagram/README.md +19 -0
  13. data/tracks/csharp/exercises/atbash-cipher/README.md +40 -0
  14. data/tracks/csharp/exercises/bank-account/README.md +41 -0
  15. data/tracks/csharp/exercises/beer-song/README.md +336 -0
  16. data/tracks/csharp/exercises/binary-search-tree/README.md +66 -0
  17. data/tracks/csharp/exercises/binary-search/README.md +47 -0
  18. data/tracks/csharp/exercises/bob/README.md +24 -0
  19. data/tracks/csharp/exercises/book-store/README.md +80 -0
  20. data/tracks/csharp/exercises/bowling/README.md +59 -0
  21. data/tracks/csharp/exercises/bracket-push/README.md +16 -0
  22. data/tracks/csharp/exercises/change/README.md +29 -0
  23. data/tracks/csharp/exercises/circular-buffer/README.md +56 -0
  24. data/tracks/csharp/exercises/clock/README.md +25 -0
  25. data/tracks/csharp/exercises/connect/README.md +40 -0
  26. data/tracks/csharp/exercises/crypto-square/README.md +80 -0
  27. data/tracks/csharp/exercises/custom-set/README.md +23 -0
  28. data/tracks/csharp/exercises/diamond/README.md +75 -0
  29. data/tracks/csharp/exercises/difference-of-squares/README.md +30 -0
  30. data/tracks/csharp/exercises/diffie-hellman/README.md +55 -0
  31. data/tracks/csharp/exercises/dominoes/README.md +24 -0
  32. data/tracks/csharp/exercises/dot-dsl/README.md +37 -0
  33. data/tracks/csharp/exercises/error-handling/README.md +19 -0
  34. data/tracks/csharp/exercises/etl/README.md +57 -0
  35. data/tracks/csharp/exercises/flatten-array/README.md +24 -0
  36. data/tracks/csharp/exercises/food-chain/README.md +80 -0
  37. data/tracks/csharp/exercises/forth/README.md +39 -0
  38. data/tracks/csharp/exercises/gigasecond/README.md +17 -0
  39. data/tracks/csharp/exercises/go-counting/README.md +43 -0
  40. data/tracks/csharp/exercises/grade-school/README.md +48 -0
  41. data/tracks/csharp/exercises/grains/README.md +40 -0
  42. data/tracks/csharp/exercises/grep/README.md +77 -0
  43. data/tracks/csharp/exercises/hamming/README.md +48 -0
  44. data/tracks/csharp/exercises/hangman/README.md +32 -0
  45. data/tracks/csharp/exercises/hello-world/README.md +27 -0
  46. data/tracks/csharp/exercises/house/README.md +123 -0
  47. data/tracks/csharp/exercises/isogram/README.md +25 -0
  48. data/tracks/csharp/exercises/kindergarten-garden/README.md +72 -0
  49. data/tracks/csharp/exercises/largest-series-product/README.md +26 -0
  50. data/tracks/csharp/exercises/leap/README.md +39 -0
  51. data/tracks/csharp/exercises/ledger/README.md +24 -0
  52. data/tracks/csharp/exercises/linked-list/README.md +40 -0
  53. data/tracks/csharp/exercises/list-ops/README.md +19 -0
  54. data/tracks/csharp/exercises/luhn/README.md +77 -0
  55. data/tracks/csharp/exercises/markdown/README.md +28 -0
  56. data/tracks/csharp/exercises/matrix/README.md +51 -0
  57. data/tracks/csharp/exercises/meetup/README.md +36 -0
  58. data/tracks/csharp/exercises/minesweeper/README.md +36 -0
  59. data/tracks/csharp/exercises/nth-prime/README.md +29 -0
  60. data/tracks/csharp/exercises/nucleotide-count/README.md +43 -0
  61. data/tracks/csharp/exercises/ocr-numbers/README.md +91 -0
  62. data/tracks/csharp/exercises/palindrome-products/README.md +51 -0
  63. data/tracks/csharp/exercises/pangram/README.md +21 -0
  64. data/tracks/csharp/exercises/parallel-letter-frequency/README.md +17 -0
  65. data/tracks/csharp/exercises/pascals-triangle/README.md +27 -0
  66. data/tracks/csharp/exercises/perfect-numbers/README.md +30 -0
  67. data/tracks/csharp/exercises/phone-number/README.md +40 -0
  68. data/tracks/csharp/exercises/pig-latin/README.md +30 -0
  69. data/tracks/csharp/exercises/poker/README.md +18 -0
  70. data/tracks/csharp/exercises/pov/README.md +52 -0
  71. data/tracks/csharp/exercises/prime-factors/README.md +42 -0
  72. data/tracks/csharp/exercises/protein-translation/README.md +55 -0
  73. data/tracks/csharp/exercises/proverb/README.md +28 -0
  74. data/tracks/csharp/exercises/pythagorean-triplet/README.md +30 -0
  75. data/tracks/csharp/exercises/queen-attack/README.md +39 -0
  76. data/tracks/csharp/exercises/rail-fence-cipher/README.md +66 -0
  77. data/tracks/csharp/exercises/raindrops/README.md +30 -0
  78. data/tracks/csharp/exercises/react/README.md +29 -0
  79. data/tracks/csharp/exercises/rectangles/README.md +73 -0
  80. data/tracks/csharp/exercises/rna-transcription/README.md +31 -0
  81. data/tracks/csharp/exercises/robot-name/README.md +28 -0
  82. data/tracks/csharp/exercises/robot-simulator/README.md +40 -0
  83. data/tracks/csharp/exercises/roman-numerals/README.md +59 -0
  84. data/tracks/csharp/exercises/rotational-cipher/README.md +42 -0
  85. data/tracks/csharp/exercises/run-length-encoding/README.md +36 -0
  86. data/tracks/csharp/exercises/saddle-points/README.md +44 -0
  87. data/tracks/csharp/exercises/say/README.md +75 -0
  88. data/tracks/csharp/exercises/scale-generator/README.md +66 -0
  89. data/tracks/csharp/exercises/scrabble-score/README.md +50 -0
  90. data/tracks/csharp/exercises/secret-handshake/README.md +41 -0
  91. data/tracks/csharp/exercises/series/README.md +33 -0
  92. data/tracks/csharp/exercises/sgf-parsing/README.md +78 -0
  93. data/tracks/csharp/exercises/sieve/README.md +40 -0
  94. data/tracks/csharp/exercises/simple-cipher/README.md +96 -0
  95. data/tracks/csharp/exercises/simple-linked-list/README.md +38 -0
  96. data/tracks/csharp/exercises/space-age/README.md +30 -0
  97. data/tracks/csharp/exercises/strain/README.md +46 -0
  98. data/tracks/csharp/exercises/sublist/README.md +32 -0
  99. data/tracks/csharp/exercises/sum-of-multiples/README.md +28 -0
  100. data/tracks/csharp/exercises/tournament/README.md +74 -0
  101. data/tracks/csharp/exercises/transpose/README.md +71 -0
  102. data/tracks/csharp/exercises/tree-building/README.md +36 -0
  103. data/tracks/csharp/exercises/triangle/README.md +32 -0
  104. data/tracks/csharp/exercises/twelve-days/README.md +45 -0
  105. data/tracks/csharp/exercises/two-bucket/README.md +42 -0
  106. data/tracks/csharp/exercises/variable-length-quantity/README.md +50 -0
  107. data/tracks/csharp/exercises/word-count/README.md +25 -0
  108. data/tracks/csharp/exercises/word-search/README.md +43 -0
  109. data/tracks/csharp/exercises/wordy/README.md +73 -0
  110. data/tracks/csharp/exercises/zebra-puzzle/README.md +43 -0
  111. data/tracks/csharp/exercises/zipper/README.md +41 -0
  112. data/tracks/dart/config/exercise_readme.go.tmpl +16 -0
  113. data/tracks/dart/exercises/bob/README.md +18 -0
  114. data/tracks/dart/exercises/difference-of-squares/README.md +19 -0
  115. data/tracks/dart/exercises/gigasecond/README.md +11 -0
  116. data/tracks/dart/exercises/hamming/README.md +42 -0
  117. data/tracks/dart/exercises/hello-world/README.md +21 -0
  118. data/tracks/dart/exercises/leap/README.md +33 -0
  119. data/tracks/dart/exercises/rna-transcription/README.md +25 -0
  120. data/tracks/delphi/config.json +25 -32
  121. data/tracks/elixir/config.json +255 -3
  122. data/tracks/elixir/config/exercise_readme.go.tmpl +16 -0
  123. data/tracks/elixir/exercises/accumulate/README.md +72 -0
  124. data/tracks/elixir/exercises/acronym/README.md +52 -0
  125. data/tracks/elixir/exercises/all-your-base/README.md +72 -0
  126. data/tracks/elixir/exercises/allergies/README.md +74 -0
  127. data/tracks/elixir/exercises/anagram/README.md +50 -0
  128. data/tracks/elixir/exercises/atbash-cipher/README.md +71 -0
  129. data/tracks/elixir/exercises/bank-account/README.md +67 -0
  130. data/tracks/elixir/exercises/beer-song/README.md +364 -0
  131. data/tracks/elixir/exercises/binary-search/README.md +78 -0
  132. data/tracks/elixir/exercises/binary/README.md +72 -0
  133. data/tracks/elixir/exercises/bob/README.md +55 -0
  134. data/tracks/elixir/exercises/bowling/README.md +90 -0
  135. data/tracks/elixir/exercises/bowling/bowling_test.exs +91 -18
  136. data/tracks/elixir/exercises/bowling/example.exs +4 -4
  137. data/tracks/elixir/exercises/bracket-push/README.md +47 -0
  138. data/tracks/elixir/exercises/change/README.md +60 -0
  139. data/tracks/elixir/exercises/clock/README.md +50 -0
  140. data/tracks/elixir/exercises/collatz-conjecture/README.md +70 -0
  141. data/tracks/elixir/exercises/connect/README.md +71 -0
  142. data/tracks/elixir/exercises/crypto-square/README.md +111 -0
  143. data/tracks/elixir/exercises/custom-set/README.md +48 -0
  144. data/tracks/elixir/exercises/diamond/README.md +96 -0
  145. data/tracks/elixir/exercises/difference-of-squares/README.md +56 -0
  146. data/tracks/elixir/exercises/diffie-hellman/README.md +93 -0
  147. data/tracks/elixir/exercises/dominoes/README.md +55 -0
  148. data/tracks/elixir/exercises/dot-dsl/README.md +65 -0
  149. data/tracks/elixir/exercises/etl/README.md +88 -0
  150. data/tracks/elixir/exercises/flatten-array/README.md +55 -0
  151. data/tracks/elixir/exercises/forth/README.md +66 -0
  152. data/tracks/elixir/exercises/gigasecond/README.md +48 -0
  153. data/tracks/elixir/exercises/grade-school/README.md +79 -0
  154. data/tracks/elixir/exercises/grains/README.md +71 -0
  155. data/tracks/elixir/exercises/grep/README.md +108 -0
  156. data/tracks/elixir/exercises/hamming/README.md +79 -0
  157. data/tracks/elixir/exercises/hello-world/README.md +58 -0
  158. data/tracks/elixir/exercises/hexadecimal/README.md +51 -0
  159. data/tracks/elixir/exercises/isogram/README.md +56 -0
  160. data/tracks/elixir/exercises/kindergarten-garden/README.md +103 -0
  161. data/tracks/elixir/exercises/largest-series-product/README.md +57 -0
  162. data/tracks/elixir/exercises/leap/README.md +70 -0
  163. data/tracks/elixir/exercises/list-ops/README.md +47 -0
  164. data/tracks/elixir/exercises/luhn/README.md +108 -0
  165. data/tracks/elixir/exercises/markdown/README.md +55 -0
  166. data/tracks/elixir/exercises/matrix/README.md +82 -0
  167. data/tracks/elixir/exercises/meetup/README.md +67 -0
  168. data/tracks/elixir/exercises/minesweeper/README.md +67 -0
  169. data/tracks/elixir/exercises/nth-prime/README.md +52 -0
  170. data/tracks/elixir/exercises/nucleotide-count/README.md +70 -0
  171. data/tracks/elixir/exercises/ocr-numbers/README.md +122 -0
  172. data/tracks/elixir/exercises/palindrome-products/README.md +77 -0
  173. data/tracks/elixir/exercises/pangram/README.md +52 -0
  174. data/tracks/elixir/exercises/parallel-letter-frequency/README.md +48 -0
  175. data/tracks/elixir/exercises/pascals-triangle/README.md +58 -0
  176. data/tracks/elixir/exercises/perfect-numbers/README.md +61 -0
  177. data/tracks/elixir/exercises/phone-number/README.md +71 -0
  178. data/tracks/elixir/exercises/pig-latin/README.md +61 -0
  179. data/tracks/elixir/exercises/poker/README.md +49 -0
  180. data/tracks/elixir/exercises/prime-factors/README.md +73 -0
  181. data/tracks/elixir/exercises/protein-translation/README.md +86 -0
  182. data/tracks/elixir/exercises/pythagorean-triplet/README.md +61 -0
  183. data/tracks/elixir/exercises/queen-attack/README.md +70 -0
  184. data/tracks/elixir/exercises/rail-fence-cipher/README.md +97 -0
  185. data/tracks/elixir/exercises/raindrops/README.md +61 -0
  186. data/tracks/elixir/exercises/rna-transcription/README.md +62 -0
  187. data/tracks/elixir/exercises/robot-simulator/README.md +71 -0
  188. data/tracks/elixir/exercises/roman-numerals/README.md +86 -0
  189. data/tracks/elixir/exercises/rotational-cipher/README.md +73 -0
  190. data/tracks/elixir/exercises/run-length-encoding/README.md +67 -0
  191. data/tracks/elixir/exercises/saddle-points/README.md +70 -0
  192. data/tracks/elixir/exercises/say/README.md +106 -0
  193. data/tracks/elixir/exercises/scale-generator/README.md +97 -0
  194. data/tracks/elixir/exercises/scrabble-score/README.md +81 -0
  195. data/tracks/elixir/exercises/secret-handshake/README.md +94 -0
  196. data/tracks/elixir/exercises/series/README.md +64 -0
  197. data/tracks/elixir/exercises/sieve/README.md +71 -0
  198. data/tracks/elixir/exercises/simple-cipher/README.md +127 -0
  199. data/tracks/elixir/exercises/simple-linked-list/README.md +65 -0
  200. data/tracks/elixir/exercises/space-age/README.md +61 -0
  201. data/tracks/elixir/exercises/strain/README.md +80 -0
  202. data/tracks/elixir/exercises/sublist/README.md +58 -0
  203. data/tracks/elixir/exercises/sum-of-multiples/README.md +55 -0
  204. data/tracks/elixir/exercises/tournament/README.md +110 -0
  205. data/tracks/elixir/exercises/triangle/README.md +63 -0
  206. data/tracks/elixir/exercises/twelve-days/README.md +72 -0
  207. data/tracks/elixir/exercises/word-count/README.md +56 -0
  208. data/tracks/elixir/exercises/wordy/README.md +100 -0
  209. data/tracks/elixir/exercises/zipper/README.md +68 -0
  210. data/tracks/fsharp/config/exercise_readme.go.tmpl +16 -0
  211. data/tracks/fsharp/exercises/accumulate/README.md +40 -0
  212. data/tracks/fsharp/exercises/acronym/README.md +15 -0
  213. data/tracks/fsharp/exercises/all-your-base/README.md +35 -0
  214. data/tracks/fsharp/exercises/allergies/README.md +37 -0
  215. data/tracks/fsharp/exercises/alphametics/README.md +41 -0
  216. data/tracks/fsharp/exercises/anagram/README.md +13 -0
  217. data/tracks/fsharp/exercises/atbash-cipher/README.md +34 -0
  218. data/tracks/fsharp/exercises/bank-account/README.md +30 -0
  219. data/tracks/fsharp/exercises/beer-song/README.md +331 -0
  220. data/tracks/fsharp/exercises/binary-search-tree/README.md +60 -0
  221. data/tracks/fsharp/exercises/binary-search/README.md +41 -0
  222. data/tracks/fsharp/exercises/bob/README.md +18 -0
  223. data/tracks/fsharp/exercises/book-store/README.md +74 -0
  224. data/tracks/fsharp/exercises/bowling/README.md +53 -0
  225. data/tracks/fsharp/exercises/bracket-push/README.md +10 -0
  226. data/tracks/fsharp/exercises/change/README.md +23 -0
  227. data/tracks/fsharp/exercises/circular-buffer/README.md +50 -0
  228. data/tracks/fsharp/exercises/clock/README.md +13 -0
  229. data/tracks/fsharp/exercises/connect/README.md +34 -0
  230. data/tracks/fsharp/exercises/crypto-square/README.md +74 -0
  231. data/tracks/fsharp/exercises/custom-set/README.md +11 -0
  232. data/tracks/fsharp/exercises/diamond/README.md +62 -0
  233. data/tracks/fsharp/exercises/difference-of-squares/README.md +25 -0
  234. data/tracks/fsharp/exercises/diffie-hellman/README.md +49 -0
  235. data/tracks/fsharp/exercises/dominoes/README.md +18 -0
  236. data/tracks/fsharp/exercises/dot-dsl/README.md +28 -0
  237. data/tracks/fsharp/exercises/error-handling/README.md +13 -0
  238. data/tracks/fsharp/exercises/etl/README.md +51 -0
  239. data/tracks/fsharp/exercises/food-chain/README.md +74 -0
  240. data/tracks/fsharp/exercises/forth/README.md +29 -0
  241. data/tracks/fsharp/exercises/gigasecond/README.md +15 -0
  242. data/tracks/fsharp/exercises/go-counting/README.md +37 -0
  243. data/tracks/fsharp/exercises/grade-school/README.md +47 -0
  244. data/tracks/fsharp/exercises/grains/README.md +39 -0
  245. data/tracks/fsharp/exercises/grep/README.md +71 -0
  246. data/tracks/fsharp/exercises/hamming/README.md +42 -0
  247. data/tracks/fsharp/exercises/hangman/README.md +21 -0
  248. data/tracks/fsharp/exercises/hello-world/README.md +21 -0
  249. data/tracks/fsharp/exercises/house/README.md +117 -0
  250. data/tracks/fsharp/exercises/isogram/README.md +19 -0
  251. data/tracks/fsharp/exercises/kindergarten-garden/README.md +66 -0
  252. data/tracks/fsharp/exercises/largest-series-product/README.md +20 -0
  253. data/tracks/fsharp/exercises/leap/README.md +33 -0
  254. data/tracks/fsharp/exercises/ledger/README.md +18 -0
  255. data/tracks/fsharp/exercises/lens-person/README.md +15 -0
  256. data/tracks/fsharp/exercises/linked-list/README.md +50 -0
  257. data/tracks/fsharp/exercises/list-ops/README.md +10 -0
  258. data/tracks/fsharp/exercises/luhn/README.md +71 -0
  259. data/tracks/fsharp/exercises/markdown/README.md +18 -0
  260. data/tracks/fsharp/exercises/matrix/README.md +45 -0
  261. data/tracks/fsharp/exercises/meetup/README.md +30 -0
  262. data/tracks/fsharp/exercises/minesweeper/README.md +30 -0
  263. data/tracks/fsharp/exercises/nth-prime/README.md +21 -0
  264. data/tracks/fsharp/exercises/nucleotide-count/README.md +33 -0
  265. data/tracks/fsharp/exercises/ocr-numbers/README.md +85 -0
  266. data/tracks/fsharp/exercises/palindrome-products/README.md +44 -0
  267. data/tracks/fsharp/exercises/pangram/README.md +15 -0
  268. data/tracks/fsharp/exercises/parallel-letter-frequency/README.md +15 -0
  269. data/tracks/fsharp/exercises/pascals-triangle/README.md +21 -0
  270. data/tracks/fsharp/exercises/perfect-numbers/README.md +24 -0
  271. data/tracks/fsharp/exercises/phone-number/README.md +34 -0
  272. data/tracks/fsharp/exercises/pig-latin/README.md +24 -0
  273. data/tracks/fsharp/exercises/poker/README.md +15 -0
  274. data/tracks/fsharp/exercises/pov/README.md +46 -0
  275. data/tracks/fsharp/exercises/prime-factors/README.md +36 -0
  276. data/tracks/fsharp/exercises/protein-translation/README.md +49 -0
  277. data/tracks/fsharp/exercises/proverb/README.md +22 -0
  278. data/tracks/fsharp/exercises/pythagorean-triplet/README.md +24 -0
  279. data/tracks/fsharp/exercises/queen-attack/README.md +33 -0
  280. data/tracks/fsharp/exercises/rail-fence-cipher/README.md +60 -0
  281. data/tracks/fsharp/exercises/raindrops/README.md +27 -0
  282. data/tracks/fsharp/exercises/react/README.md +19 -0
  283. data/tracks/fsharp/exercises/rectangles/README.md +67 -0
  284. data/tracks/fsharp/exercises/rna-transcription/README.md +29 -0
  285. data/tracks/fsharp/exercises/robot-name/README.md +22 -0
  286. data/tracks/fsharp/exercises/robot-simulator/README.md +34 -0
  287. data/tracks/fsharp/exercises/roman-numerals/README.md +49 -0
  288. data/tracks/fsharp/exercises/run-length-encoding/README.md +30 -0
  289. data/tracks/fsharp/exercises/saddle-points/README.md +33 -0
  290. data/tracks/fsharp/exercises/say/README.md +69 -0
  291. data/tracks/fsharp/exercises/scale-generator/README.md +60 -0
  292. data/tracks/fsharp/exercises/scrabble-score/README.md +44 -0
  293. data/tracks/fsharp/exercises/secret-handshake/README.md +35 -0
  294. data/tracks/fsharp/exercises/series/README.md +27 -0
  295. data/tracks/fsharp/exercises/sgf-parsing/README.md +68 -0
  296. data/tracks/fsharp/exercises/sieve/README.md +34 -0
  297. data/tracks/fsharp/exercises/simple-cipher/README.md +90 -0
  298. data/tracks/fsharp/exercises/simple-linked-list/README.md +28 -0
  299. data/tracks/fsharp/exercises/space-age/README.md +28 -0
  300. data/tracks/fsharp/exercises/strain/README.md +40 -0
  301. data/tracks/fsharp/exercises/sublist/README.md +21 -0
  302. data/tracks/fsharp/exercises/sum-of-multiples/README.md +18 -0
  303. data/tracks/fsharp/exercises/tournament/README.md +68 -0
  304. data/tracks/fsharp/exercises/transpose/README.md +65 -0
  305. data/tracks/fsharp/exercises/tree-building/README.md +30 -0
  306. data/tracks/fsharp/exercises/triangle/README.md +26 -0
  307. data/tracks/fsharp/exercises/twelve-days/README.md +39 -0
  308. data/tracks/fsharp/exercises/two-bucket/README.md +36 -0
  309. data/tracks/fsharp/exercises/variable-length-quantity/README.md +39 -0
  310. data/tracks/fsharp/exercises/word-count/README.md +19 -0
  311. data/tracks/fsharp/exercises/word-search/README.md +30 -0
  312. data/tracks/fsharp/exercises/wordy/README.md +68 -0
  313. data/tracks/fsharp/exercises/zebra-puzzle/README.md +32 -0
  314. data/tracks/fsharp/exercises/zipper/README.md +31 -0
  315. data/tracks/haskell/README.md +2 -2
  316. data/tracks/javascript/config.json +232 -4
  317. data/tracks/kotlin/config.json +8 -1
  318. data/tracks/kotlin/exercises/rotational-cipher/build.gradle +28 -0
  319. data/tracks/kotlin/exercises/rotational-cipher/src/example/kotlin/RotationalCipher.kt +18 -0
  320. data/tracks/kotlin/exercises/rotational-cipher/src/main/kotlin/.keep +0 -0
  321. data/tracks/kotlin/exercises/rotational-cipher/src/test/kotlin/RotationalCipherTest.kt +81 -0
  322. data/tracks/kotlin/exercises/settings.gradle +1 -0
  323. data/tracks/powershell/config/exercise_readme.go.tmpl +16 -0
  324. data/tracks/powershell/exercises/hamming/README.md +42 -0
  325. data/tracks/powershell/exercises/hello-world/README.md +21 -0
  326. data/tracks/purescript/README.md +4 -4
  327. data/tracks/scala/config.json +266 -6
  328. data/tracks/scala/config/exercise_readme.go.tmpl +16 -0
  329. data/tracks/scala/exercises/accumulate/README.md +46 -0
  330. data/tracks/scala/exercises/acronym/README.md +26 -0
  331. data/tracks/scala/exercises/all-your-base/README.md +46 -0
  332. data/tracks/scala/exercises/allergies/README.md +48 -0
  333. data/tracks/scala/exercises/alphametics/README.md +46 -0
  334. data/tracks/scala/exercises/anagram/README.md +24 -0
  335. data/tracks/scala/exercises/atbash-cipher/README.md +45 -0
  336. data/tracks/scala/exercises/bank-account/README.md +54 -0
  337. data/tracks/scala/exercises/beer-song/README.md +338 -0
  338. data/tracks/scala/exercises/binary-search-tree/README.md +71 -0
  339. data/tracks/scala/exercises/binary-search/README.md +52 -0
  340. data/tracks/scala/exercises/binary/README.md +46 -0
  341. data/tracks/scala/exercises/bob/README.md +29 -0
  342. data/tracks/scala/exercises/book-store/README.md +85 -0
  343. data/tracks/scala/exercises/bowling/README.md +64 -0
  344. data/tracks/scala/exercises/bracket-push/README.md +21 -0
  345. data/tracks/scala/exercises/change/README.md +34 -0
  346. data/tracks/scala/exercises/clock/README.md +24 -0
  347. data/tracks/scala/exercises/connect/README.md +53 -0
  348. data/tracks/scala/exercises/crypto-square/README.md +85 -0
  349. data/tracks/scala/exercises/custom-set/README.md +22 -0
  350. data/tracks/scala/exercises/difference-of-squares/README.md +30 -0
  351. data/tracks/scala/exercises/dominoes/README.md +29 -0
  352. data/tracks/scala/exercises/etl/README.md +62 -0
  353. data/tracks/scala/exercises/food-chain/README.md +81 -0
  354. data/tracks/scala/exercises/forth/README.md +40 -0
  355. data/tracks/scala/exercises/gigasecond/README.md +26 -0
  356. data/tracks/scala/exercises/grade-school/README.md +53 -0
  357. data/tracks/scala/exercises/grains/README.md +45 -0
  358. data/tracks/scala/exercises/hamming/README.md +112 -0
  359. data/tracks/scala/exercises/hello-world/README.md +38 -0
  360. data/tracks/scala/exercises/hexadecimal/README.md +25 -0
  361. data/tracks/scala/exercises/house/README.md +124 -0
  362. data/tracks/scala/exercises/isogram/README.md +30 -0
  363. data/tracks/scala/exercises/kindergarten-garden/README.md +77 -0
  364. data/tracks/scala/exercises/largest-series-product/README.md +31 -0
  365. data/tracks/scala/exercises/leap/README.md +50 -0
  366. data/tracks/scala/exercises/lens-person/README.md +11 -7
  367. data/tracks/scala/exercises/linked-list/README.md +45 -0
  368. data/tracks/scala/exercises/luhn/README.md +82 -0
  369. data/tracks/scala/exercises/matrix/README.md +56 -0
  370. data/tracks/scala/exercises/meetup/README.md +41 -0
  371. data/tracks/scala/exercises/minesweeper/README.md +41 -0
  372. data/tracks/scala/exercises/nth-prime/README.md +26 -0
  373. data/tracks/scala/exercises/nucleotide-count/README.md +107 -0
  374. data/tracks/scala/exercises/ocr-numbers/README.md +96 -0
  375. data/tracks/scala/exercises/octal/README.md +60 -0
  376. data/tracks/scala/exercises/palindrome-products/README.md +51 -0
  377. data/tracks/scala/exercises/pangram/README.md +26 -0
  378. data/tracks/scala/exercises/parallel-letter-frequency/README.md +50 -0
  379. data/tracks/scala/exercises/pascals-triangle/README.md +32 -0
  380. data/tracks/scala/exercises/perfect-numbers/README.md +35 -0
  381. data/tracks/scala/exercises/phone-number/README.md +56 -0
  382. data/tracks/scala/exercises/pig-latin/README.md +35 -0
  383. data/tracks/scala/exercises/prime-factors/README.md +47 -0
  384. data/tracks/scala/exercises/protein-translation/README.md +60 -0
  385. data/tracks/scala/exercises/pythagorean-triplet/README.md +35 -0
  386. data/tracks/scala/exercises/queen-attack/README.md +44 -0
  387. data/tracks/scala/exercises/rail-fence-cipher/README.md +71 -0
  388. data/tracks/scala/exercises/raindrops/README.md +35 -0
  389. data/tracks/scala/exercises/rna-transcription/README.md +36 -0
  390. data/tracks/scala/exercises/robot-name/README.md +40 -0
  391. data/tracks/scala/exercises/robot-simulator/README.md +45 -0
  392. data/tracks/scala/exercises/roman-numerals/README.md +72 -0
  393. data/tracks/scala/exercises/run-length-encoding/README.md +41 -0
  394. data/tracks/scala/exercises/saddle-points/README.md +44 -0
  395. data/tracks/scala/exercises/say/README.md +80 -0
  396. data/tracks/scala/exercises/scrabble-score/README.md +55 -0
  397. data/tracks/scala/exercises/secret-handshake/README.md +46 -0
  398. data/tracks/scala/exercises/series/README.md +38 -0
  399. data/tracks/scala/exercises/sgf-parsing/README.md +79 -0
  400. data/tracks/scala/exercises/sieve/README.md +45 -0
  401. data/tracks/scala/exercises/simple-cipher/README.md +101 -0
  402. data/tracks/scala/exercises/simple-linked-list/README.md +39 -0
  403. data/tracks/scala/exercises/space-age/README.md +35 -0
  404. data/tracks/scala/exercises/spiral-matrix/README.md +41 -0
  405. data/tracks/scala/exercises/strain/README.md +51 -0
  406. data/tracks/scala/exercises/sublist/README.md +32 -0
  407. data/tracks/scala/exercises/sum-of-multiples/README.md +29 -0
  408. data/tracks/scala/exercises/triangle/README.md +37 -0
  409. data/tracks/scala/exercises/trinary/README.md +39 -0
  410. data/tracks/scala/exercises/variable-length-quantity/README.md +54 -0
  411. data/tracks/scala/exercises/word-count/README.md +30 -0
  412. data/tracks/scala/exercises/wordy/README.md +74 -0
  413. data/tracks/scala/exercises/zebra-puzzle/README.md +43 -0
  414. data/tracks/scala/exercises/zipper/README.md +42 -0
  415. metadata +401 -1
@@ -0,0 +1,31 @@
1
+ # Zipper
2
+
3
+ Creating a zipper for a binary tree.
4
+
5
+ [Zippers](https://en.wikipedia.org/wiki/Zipper_%28data_structure%29) are
6
+ a way purely functional of navigating within a data structure and
7
+ manipulating it. They essentially contain a data structure and a
8
+ pointer into that data structure (called the focus).
9
+
10
+ For example given a rose tree (where each node contains a value and a
11
+ list of child nodes) a zipper might support these operations:
12
+
13
+ - `from_tree` (get a zipper out of a rose tree, the focus is on the root node)
14
+ - `to_tree` (get the rose tree out of the zipper)
15
+ - `value` (get the value of the focus node)
16
+ - `prev` (move the focus to the previous child of the same parent,
17
+ returns a new zipper)
18
+ - `next` (move the focus to the next child of the same parent, returns a
19
+ new zipper)
20
+ - `up` (move the focus to the parent, returns a new zipper)
21
+ - `set_value` (set the value of the focus node, returns a new zipper)
22
+ - `insert_before` (insert a new subtree before the focus node, it
23
+ becomes the `prev` of the focus node, returns a new zipper)
24
+ - `insert_after` (insert a new subtree after the focus node, it becomes
25
+ the `next` of the focus node, returns a new zipper)
26
+ - `delete` (removes the focus node and all subtrees, focus moves to the
27
+ `next` node if possible otherwise to the `prev` node if possible,
28
+ otherwise to the parent node, returns a new zipper)
29
+
30
+ ## Submitting Incomplete Solutions
31
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -54,11 +54,11 @@ Of course you can also add a totally new exercise, but it might be a good idea t
54
54
 
55
55
  #### Updating an exercise test suite
56
56
  Updating a test suite of an existing exercise is special because it usually affects all languages.
57
- You can refer to the [documentation on updating a test suite](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#updating-an-exercise-test-suite).
57
+ You can refer to the [documentation on updating a test suite](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md#changing-exercise-test-suites) and the [test suite principles](https://github.com/exercism/docs/blob/master/language-tracks/exercises/anatomy/test-suites.md).
58
58
  Note that the whole test suite must run with the sample solution within a couple of seconds.
59
59
 
60
60
  ### Repository structure and conventions
61
- The [track anatomy documentation](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#track-anatomy) is a general description of all the files and directories that are not explicitly described below.
61
+ The [track anatomy documentation](https://github.com/exercism/docs/blob/master/language-tracks/README.md) is a general description of all the files and directories that are not explicitly described below.
62
62
 
63
63
  #### Directory structure
64
64
  ```bash
@@ -6,7 +6,10 @@
6
6
  "test_pattern": ".*[.]spec[.]js$",
7
7
  "exercises": [
8
8
  {
9
+ "uuid": "4756cfc9-7509-4783-8be7-60e3376b8256",
9
10
  "slug": "hello-world",
11
+ "core": false,
12
+ "unlocked_by": null,
10
13
  "difficulty": 1,
11
14
  "topics": [
12
15
  "Control-flow (conditionals)",
@@ -16,7 +19,10 @@
16
19
  ]
17
20
  },
18
21
  {
22
+ "uuid": "0c231a1c-55f7-47b6-8a54-ccae4ab0c65b",
19
23
  "slug": "leap",
24
+ "core": false,
25
+ "unlocked_by": null,
20
26
  "difficulty": 1,
21
27
  "topics": [
22
28
  "Booleans",
@@ -25,7 +31,10 @@
25
31
  ]
26
32
  },
27
33
  {
34
+ "uuid": "3e1358c8-2bea-41f9-bc9e-8277f354a4e0",
28
35
  "slug": "hamming",
36
+ "core": false,
37
+ "unlocked_by": null,
29
38
  "difficulty": 1,
30
39
  "topics": [
31
40
  "Control-flow (loops)",
@@ -35,7 +44,10 @@
35
44
  ]
36
45
  },
37
46
  {
47
+ "uuid": "d7f57ab9-2edb-44cb-a04e-c575c0f4be4c",
38
48
  "slug": "rna-transcription",
49
+ "core": false,
50
+ "unlocked_by": null,
39
51
  "difficulty": 1,
40
52
  "topics": [
41
53
  "Strings",
@@ -43,7 +55,10 @@
43
55
  ]
44
56
  },
45
57
  {
58
+ "uuid": "c57bf909-130f-46e6-97ca-aeed58df1a15",
46
59
  "slug": "pangram",
60
+ "core": false,
61
+ "unlocked_by": null,
47
62
  "difficulty": 1,
48
63
  "topics": [
49
64
  "Control flow (conditionals)",
@@ -56,7 +71,10 @@
56
71
  ]
57
72
  },
58
73
  {
74
+ "uuid": "246be5d9-b361-4893-9707-f218ede2bed6",
59
75
  "slug": "bob",
76
+ "core": false,
77
+ "unlocked_by": null,
60
78
  "difficulty": 1,
61
79
  "topics": [
62
80
  "Control flow (conditionals)",
@@ -68,14 +86,20 @@
68
86
  ]
69
87
  },
70
88
  {
89
+ "uuid": "49e4874b-d7e2-4305-a9bc-627fab4ada44",
71
90
  "slug": "gigasecond",
91
+ "core": false,
92
+ "unlocked_by": null,
72
93
  "difficulty": 1,
73
94
  "topics": [
74
95
  "Time"
75
96
  ]
76
97
  },
77
98
  {
99
+ "uuid": "35821375-5c94-4d4b-aa56-e3b079a45ca0",
78
100
  "slug": "isogram",
101
+ "core": false,
102
+ "unlocked_by": null,
79
103
  "difficulty": 1,
80
104
  "topics": [
81
105
  "Strings",
@@ -83,7 +107,10 @@
83
107
  ]
84
108
  },
85
109
  {
110
+ "uuid": "6f315fc3-095a-4387-aefb-cc5fee97110a",
86
111
  "slug": "beer-song",
112
+ "core": false,
113
+ "unlocked_by": null,
87
114
  "difficulty": 1,
88
115
  "topics": [
89
116
  "Looping",
@@ -92,7 +119,10 @@
92
119
  ]
93
120
  },
94
121
  {
122
+ "uuid": "347f9f54-a0d9-469d-babf-b3edb34d9d70",
95
123
  "slug": "phone-number",
124
+ "core": false,
125
+ "unlocked_by": null,
96
126
  "difficulty": 1,
97
127
  "topics": [
98
128
  "Parsing",
@@ -100,7 +130,10 @@
100
130
  ]
101
131
  },
102
132
  {
133
+ "uuid": "432ec2ce-c919-4142-aea2-389b67503252",
103
134
  "slug": "anagram",
135
+ "core": false,
136
+ "unlocked_by": null,
104
137
  "difficulty": 1,
105
138
  "topics": [
106
139
  "Strings",
@@ -108,7 +141,10 @@
108
141
  ]
109
142
  },
110
143
  {
144
+ "uuid": "a717745f-da00-4a5f-8bf3-6876e20cdf17",
111
145
  "slug": "food-chain",
146
+ "core": false,
147
+ "unlocked_by": null,
112
148
  "difficulty": 1,
113
149
  "topics": [
114
150
  "Text formatting",
@@ -116,63 +152,90 @@
116
152
  ]
117
153
  },
118
154
  {
155
+ "uuid": "029bc3ed-772d-439b-bd0a-1ba1196a79ec",
119
156
  "slug": "grade-school",
157
+ "core": false,
158
+ "unlocked_by": null,
120
159
  "difficulty": 1,
121
160
  "topics": [
122
161
 
123
162
  ]
124
163
  },
125
164
  {
165
+ "uuid": "3005340b-a8d6-46ac-9075-125f9adccc2a",
126
166
  "slug": "robot-name",
167
+ "core": false,
168
+ "unlocked_by": null,
127
169
  "difficulty": 1,
128
170
  "topics": [
129
171
 
130
172
  ]
131
173
  },
132
174
  {
175
+ "uuid": "a2a19f61-62ba-447a-8f57-537c8baa2e7a",
133
176
  "slug": "etl",
177
+ "core": false,
178
+ "unlocked_by": null,
134
179
  "difficulty": 1,
135
180
  "topics": [
136
181
 
137
182
  ]
138
183
  },
139
184
  {
185
+ "uuid": "b668e11a-a8ce-4e94-ba68-3a1f0fa3f6c8",
140
186
  "slug": "space-age",
187
+ "core": false,
188
+ "unlocked_by": null,
141
189
  "difficulty": 1,
142
190
  "topics": [
143
191
 
144
192
  ]
145
193
  },
146
194
  {
195
+ "uuid": "c5be6908-f45c-4278-ba99-3701024f4eda",
147
196
  "slug": "grains",
197
+ "core": false,
198
+ "unlocked_by": null,
148
199
  "difficulty": 1,
149
200
  "topics": [
150
201
 
151
202
  ]
152
203
  },
153
204
  {
205
+ "uuid": "fde792fa-84e9-4b86-8ecb-8466ad92a99d",
154
206
  "slug": "triangle",
207
+ "core": false,
208
+ "unlocked_by": null,
155
209
  "difficulty": 1,
156
210
  "topics": [
157
211
 
158
212
  ]
159
213
  },
160
214
  {
215
+ "uuid": "1ff85150-6c51-4758-af02-4484cf35658e",
161
216
  "slug": "clock",
217
+ "core": false,
218
+ "unlocked_by": null,
162
219
  "difficulty": 1,
163
220
  "topics": [
164
221
 
165
222
  ]
166
223
  },
167
224
  {
225
+ "uuid": "51aa5429-b2db-43ad-83cf-84e2ead22cb6",
168
226
  "slug": "perfect-numbers",
227
+ "core": false,
228
+ "unlocked_by": null,
169
229
  "difficulty": 1,
170
230
  "topics": [
171
231
 
172
232
  ]
173
233
  },
174
234
  {
235
+ "uuid": "9a4ea3da-ad43-4850-bdf3-2c578c5de838",
175
236
  "slug": "word-count",
237
+ "core": false,
238
+ "unlocked_by": null,
176
239
  "difficulty": 1,
177
240
  "topics": [
178
241
  "Control flow (loops)",
@@ -183,161 +246,230 @@
183
246
  ]
184
247
  },
185
248
  {
249
+ "uuid": "0c1c4788-0372-42e7-81c1-b090bb7ebc8b",
186
250
  "slug": "acronym",
251
+ "core": false,
252
+ "unlocked_by": null,
187
253
  "difficulty": 1,
188
254
  "topics": [
189
255
 
190
256
  ]
191
257
  },
192
258
  {
259
+ "uuid": "a6bd8126-3879-4593-8380-39ebfa87801b",
193
260
  "slug": "scrabble-score",
261
+ "core": false,
262
+ "unlocked_by": null,
194
263
  "difficulty": 1,
195
264
  "topics": [
196
265
 
197
266
  ]
198
267
  },
199
268
  {
269
+ "uuid": "4226e3c6-99d4-406d-998a-bcf11845b211",
200
270
  "slug": "roman-numerals",
271
+ "core": false,
272
+ "unlocked_by": null,
201
273
  "difficulty": 1,
202
274
  "topics": [
203
275
 
204
276
  ]
205
277
  },
206
278
  {
279
+ "uuid": "f1943e87-182a-44f5-a885-3d68a0c0a0dc",
207
280
  "slug": "circular-buffer",
281
+ "core": false,
282
+ "unlocked_by": null,
208
283
  "difficulty": 1,
209
284
  "topics": [
210
285
 
211
286
  ]
212
287
  },
213
288
  {
289
+ "uuid": "c3035180-ff4c-4afe-8019-f8364158b74e",
214
290
  "slug": "binary",
291
+ "core": false,
292
+ "unlocked_by": null,
215
293
  "difficulty": 1,
216
294
  "topics": [
217
295
 
218
296
  ]
219
297
  },
220
298
  {
299
+ "uuid": "73ecd6c2-e59b-4354-b305-64e28a60433f",
221
300
  "slug": "prime-factors",
301
+ "core": false,
302
+ "unlocked_by": null,
222
303
  "difficulty": 1,
223
304
  "topics": [
224
305
 
225
306
  ]
226
307
  },
227
308
  {
309
+ "uuid": "86b1acf1-9e2d-4b04-b8b0-e9ae6beb5f3d",
228
310
  "slug": "raindrops",
311
+ "core": false,
312
+ "unlocked_by": null,
229
313
  "difficulty": 1,
230
314
  "topics": [
231
315
 
232
316
  ]
233
317
  },
234
318
  {
319
+ "uuid": "23210e9e-81f6-4279-a776-00459c7ccd02",
235
320
  "slug": "allergies",
321
+ "core": false,
322
+ "unlocked_by": null,
236
323
  "difficulty": 1,
237
324
  "topics": [
238
325
 
239
326
  ]
240
327
  },
241
328
  {
329
+ "uuid": "e61f3d54-55d2-4d32-9d2a-e7d6af3a3247",
242
330
  "slug": "strain",
331
+ "core": false,
332
+ "unlocked_by": null,
243
333
  "difficulty": 1,
244
334
  "topics": [
245
335
 
246
336
  ]
247
337
  },
248
338
  {
339
+ "uuid": "99974454-0736-4cc0-b88f-ed5701397a97",
249
340
  "slug": "atbash-cipher",
341
+ "core": false,
342
+ "unlocked_by": null,
250
343
  "difficulty": 1,
251
344
  "topics": [
252
345
 
253
346
  ]
254
347
  },
255
348
  {
349
+ "uuid": "dc9b2598-9757-4b20-82f9-8049ad081ac9",
256
350
  "slug": "accumulate",
351
+ "core": false,
352
+ "unlocked_by": null,
257
353
  "difficulty": 1,
258
354
  "topics": [
259
355
 
260
356
  ]
261
357
  },
262
358
  {
359
+ "uuid": "a98e3593-d5b4-4c2b-8569-ae3ae7e07dad",
263
360
  "slug": "crypto-square",
361
+ "core": false,
362
+ "unlocked_by": null,
264
363
  "difficulty": 1,
265
364
  "topics": [
266
365
 
267
366
  ]
268
367
  },
269
368
  {
369
+ "uuid": "f317721d-e1f5-4e68-9fdc-f9bc7b6b004d",
270
370
  "slug": "trinary",
371
+ "core": false,
372
+ "unlocked_by": null,
271
373
  "difficulty": 1,
272
374
  "topics": [
273
375
 
274
376
  ]
275
377
  },
276
378
  {
379
+ "uuid": "4cad8ee8-40be-4d4d-8c14-45d8c6e29a32",
277
380
  "slug": "sieve",
381
+ "core": false,
382
+ "unlocked_by": null,
278
383
  "difficulty": 1,
279
384
  "topics": [
280
385
 
281
386
  ]
282
387
  },
283
388
  {
389
+ "uuid": "fff57c49-cde9-4a0c-b70b-2903cef212af",
284
390
  "slug": "simple-cipher",
391
+ "core": false,
392
+ "unlocked_by": null,
285
393
  "difficulty": 1,
286
394
  "topics": [
287
395
 
288
396
  ]
289
397
  },
290
398
  {
399
+ "uuid": "9892d47d-97a0-4a2f-8284-6f84c86559e8",
291
400
  "slug": "octal",
401
+ "core": false,
402
+ "unlocked_by": null,
292
403
  "difficulty": 1,
293
404
  "topics": [
294
405
 
295
406
  ]
296
407
  },
297
408
  {
409
+ "uuid": "bb46e832-8c37-45ee-9ee7-5037015b965c",
298
410
  "slug": "luhn",
411
+ "core": false,
412
+ "unlocked_by": null,
299
413
  "difficulty": 1,
300
414
  "topics": [
301
415
 
302
416
  ]
303
417
  },
304
418
  {
419
+ "uuid": "9a515ad0-34c7-4191-8784-5c4cd6385b38",
305
420
  "slug": "pig-latin",
421
+ "core": false,
422
+ "unlocked_by": null,
306
423
  "difficulty": 1,
307
424
  "topics": [
308
425
 
309
426
  ]
310
427
  },
311
428
  {
429
+ "uuid": "26a973dd-d72e-40fb-abeb-0ba306356ed6",
312
430
  "slug": "pythagorean-triplet",
431
+ "core": false,
432
+ "unlocked_by": null,
313
433
  "difficulty": 1,
314
434
  "topics": [
315
435
 
316
436
  ]
317
437
  },
318
438
  {
439
+ "uuid": "06afdb06-8d2a-4cb0-baf1-48ae997cf1f5",
319
440
  "slug": "series",
441
+ "core": false,
442
+ "unlocked_by": null,
320
443
  "difficulty": 1,
321
444
  "topics": [
322
445
 
323
446
  ]
324
447
  },
325
448
  {
449
+ "uuid": "07110dd5-b879-40b9-9485-685cb0963d8f",
326
450
  "slug": "difference-of-squares",
451
+ "core": false,
452
+ "unlocked_by": null,
327
453
  "difficulty": 1,
328
454
  "topics": [
329
455
 
330
456
  ]
331
457
  },
332
458
  {
459
+ "uuid": "0a3a452c-f734-47eb-8e65-34c8ae710ef0",
333
460
  "slug": "secret-handshake",
461
+ "core": false,
462
+ "unlocked_by": null,
334
463
  "difficulty": 1,
335
464
  "topics": [
336
465
 
337
466
  ]
338
467
  },
339
468
  {
469
+ "uuid": "8786d591-077b-49bc-be8d-d014dc9dc308",
340
470
  "slug": "proverb",
471
+ "core": false,
472
+ "unlocked_by": null,
341
473
  "difficulty": 1,
342
474
  "topics": [
343
475
  "Arrays",
@@ -345,189 +477,270 @@
345
477
  ]
346
478
  },
347
479
  {
480
+ "uuid": "ecc41237-f629-458f-873e-2cc51ba1a385",
348
481
  "slug": "linked-list",
482
+ "core": false,
483
+ "unlocked_by": null,
349
484
  "difficulty": 1,
350
485
  "topics": [
351
486
 
352
487
  ]
353
488
  },
354
489
  {
490
+ "uuid": "bb54bf08-24ba-45e1-bdf7-08db161e5843",
355
491
  "slug": "wordy",
492
+ "core": false,
493
+ "unlocked_by": null,
356
494
  "difficulty": 1,
357
495
  "topics": [
358
496
 
359
497
  ]
360
498
  },
361
499
  {
500
+ "uuid": "32a0a5fa-c7de-470c-beff-118b448b3916",
362
501
  "slug": "flatten-array",
502
+ "core": false,
503
+ "unlocked_by": null,
363
504
  "difficulty": 1,
364
505
  "topics": [
365
506
 
366
507
  ]
367
508
  },
368
509
  {
510
+ "uuid": "33b8f4c0-3210-478a-9225-5c30ad6df870",
369
511
  "slug": "hexadecimal",
512
+ "core": false,
513
+ "unlocked_by": null,
370
514
  "difficulty": 1,
371
515
  "topics": [
372
516
 
373
517
  ]
374
518
  },
375
519
  {
520
+ "uuid": "44bd02a7-0e3a-4441-ab76-524e36d4661c",
376
521
  "slug": "largest-series-product",
522
+ "core": false,
523
+ "unlocked_by": null,
377
524
  "difficulty": 1,
378
525
  "topics": [
379
526
 
380
527
  ]
381
528
  },
382
529
  {
530
+ "uuid": "2702ac90-0be2-43a2-91b6-7256a25fec87",
383
531
  "slug": "kindergarten-garden",
532
+ "core": false,
533
+ "unlocked_by": null,
384
534
  "difficulty": 1,
385
535
  "topics": [
386
536
 
387
537
  ]
388
538
  },
389
539
  {
540
+ "uuid": "5991c379-f033-4b46-9702-6b7fd03640e8",
390
541
  "slug": "binary-search",
542
+ "core": false,
543
+ "unlocked_by": null,
391
544
  "difficulty": 1,
392
545
  "topics": [
393
546
 
394
547
  ]
395
548
  },
396
549
  {
550
+ "uuid": "865806e0-950f-49a5-a6e5-26472b90ab85",
397
551
  "slug": "binary-search-tree",
552
+ "core": false,
553
+ "unlocked_by": null,
398
554
  "difficulty": 1,
399
555
  "topics": [
400
556
 
401
557
  ]
402
558
  },
403
559
  {
560
+ "uuid": "fbfe6032-c209-40bd-b485-8b2881638166",
404
561
  "slug": "matrix",
562
+ "core": false,
563
+ "unlocked_by": null,
405
564
  "difficulty": 1,
406
565
  "topics": [
407
566
 
408
567
  ]
409
568
  },
410
569
  {
570
+ "uuid": "00002977-ea1e-45e2-b66e-09d793b5c1ad",
411
571
  "slug": "robot-simulator",
572
+ "core": false,
573
+ "unlocked_by": null,
412
574
  "difficulty": 1,
413
575
  "topics": [
414
576
 
415
577
  ]
416
578
  },
417
579
  {
580
+ "uuid": "8fa51380-ec2c-4806-8833-cf543579de17",
418
581
  "slug": "nth-prime",
582
+ "core": false,
583
+ "unlocked_by": null,
419
584
  "difficulty": 1,
420
585
  "topics": [
421
586
 
422
587
  ]
423
588
  },
424
589
  {
590
+ "uuid": "fde83f66-d927-48f8-a599-efb98927f0b1",
425
591
  "slug": "palindrome-products",
592
+ "core": false,
593
+ "unlocked_by": null,
426
594
  "difficulty": 1,
427
595
  "topics": [
428
596
 
429
597
  ]
430
598
  },
431
599
  {
600
+ "uuid": "a96ab45d-10a0-42cf-a754-c2466037ceaf",
432
601
  "slug": "pascals-triangle",
602
+ "core": false,
603
+ "unlocked_by": null,
433
604
  "difficulty": 1,
434
605
  "topics": [
435
606
 
436
607
  ]
437
608
  },
438
609
  {
610
+ "uuid": "01d286f6-5f29-4d4b-a4de-e217a4833bfa",
439
611
  "slug": "say",
612
+ "core": false,
613
+ "unlocked_by": null,
440
614
  "difficulty": 1,
441
615
  "topics": [
442
616
 
443
617
  ]
444
618
  },
445
619
  {
620
+ "uuid": "d4ec15c4-2742-493b-97fe-9d5121f0b659",
446
621
  "slug": "custom-set",
622
+ "core": false,
623
+ "unlocked_by": null,
447
624
  "difficulty": 1,
448
625
  "topics": [
449
626
 
450
627
  ]
451
628
  },
452
629
  {
630
+ "uuid": "f30463c4-9d8c-4238-a691-e594291b4425",
453
631
  "slug": "sum-of-multiples",
632
+ "core": false,
633
+ "unlocked_by": null,
454
634
  "difficulty": 1,
455
635
  "topics": [
456
636
 
457
637
  ]
458
638
  },
459
639
  {
640
+ "uuid": "fefcfeba-59ec-4c63-a562-374201ee39a7",
460
641
  "slug": "queen-attack",
642
+ "core": false,
643
+ "unlocked_by": null,
461
644
  "difficulty": 1,
462
645
  "topics": [
463
646
 
464
647
  ]
465
648
  },
466
649
  {
650
+ "uuid": "98cbae4f-78b6-4745-b922-39e8db9a12bb",
467
651
  "slug": "saddle-points",
652
+ "core": false,
653
+ "unlocked_by": null,
468
654
  "difficulty": 1,
469
655
  "topics": [
470
656
 
471
657
  ]
472
658
  },
473
659
  {
660
+ "uuid": "759618b1-7ccc-46cd-889d-aea58ec88756",
474
661
  "slug": "ocr-numbers",
662
+ "core": false,
663
+ "unlocked_by": null,
475
664
  "difficulty": 1,
476
665
  "topics": [
477
666
 
478
667
  ]
479
668
  },
480
669
  {
670
+ "uuid": "86b1b6ba-c1fe-492d-a7ec-c22c525b4da8",
481
671
  "slug": "meetup",
672
+ "core": false,
673
+ "unlocked_by": null,
482
674
  "difficulty": 1,
483
675
  "topics": [
484
676
 
485
677
  ]
486
678
  },
487
679
  {
680
+ "uuid": "25099f87-5c3b-4a8a-b648-4639d1e9fa84",
488
681
  "slug": "bracket-push",
682
+ "core": false,
683
+ "unlocked_by": null,
489
684
  "difficulty": 1,
490
685
  "topics": [
491
686
 
492
687
  ]
493
688
  },
494
689
  {
690
+ "uuid": "4c857b17-33b0-47fa-b981-6b2fe4e394a1",
495
691
  "slug": "two-bucket",
692
+ "core": false,
693
+ "unlocked_by": null,
496
694
  "difficulty": 1,
497
695
  "topics": [
498
696
 
499
697
  ]
500
698
  },
501
699
  {
700
+ "uuid": "c168fe1f-f84e-46e6-91fc-7553d048a4e9",
502
701
  "slug": "bowling",
702
+ "core": false,
703
+ "unlocked_by": null,
503
704
  "difficulty": 1,
504
705
  "topics": [
505
706
 
506
707
  ]
507
708
  },
508
709
  {
710
+ "uuid": "04a4ef78-5b61-454f-8c37-798875fb4956",
509
711
  "slug": "diamond",
712
+ "core": false,
713
+ "unlocked_by": null,
510
714
  "difficulty": 1,
511
715
  "topics": [
512
716
 
513
717
  ]
514
718
  },
515
719
  {
720
+ "uuid": "cdfcec62-f2f3-4408-ad2c-8b5e1e56e791",
516
721
  "slug": "all-your-base",
722
+ "core": false,
723
+ "unlocked_by": null,
517
724
  "difficulty": 1,
518
725
  "topics": [
519
726
 
520
727
  ]
521
728
  },
522
729
  {
730
+ "uuid": "d66c2b56-b465-4922-af35-ae78944c0aac",
523
731
  "slug": "run-length-encoding",
732
+ "core": false,
733
+ "unlocked_by": null,
524
734
  "difficulty": 1,
525
735
  "topics": [
526
736
 
527
737
  ]
528
738
  },
529
739
  {
740
+ "uuid": "22fa5ab4-935b-44cc-b055-9803214ae5f3",
530
741
  "slug": "minesweeper",
742
+ "core": false,
743
+ "unlocked_by": null,
531
744
  "difficulty": 7,
532
745
  "topics": [
533
746
  "games",
@@ -536,7 +749,10 @@
536
749
  ]
537
750
  },
538
751
  {
752
+ "uuid": "42a7fd83-4508-403c-8b5e-f0a3126fac8a",
539
753
  "slug": "alphametics",
754
+ "core": false,
755
+ "unlocked_by": null,
540
756
  "difficulty": 7,
541
757
  "topics": [
542
758
  "games",
@@ -544,7 +760,10 @@
544
760
  ]
545
761
  },
546
762
  {
763
+ "uuid": "c21ab6e8-b845-49d0-a2f6-1c89c7a07626",
547
764
  "slug": "simple-linked-list",
765
+ "core": false,
766
+ "unlocked_by": null,
548
767
  "difficulty": 8,
549
768
  "topics": [
550
769
  "Arrays",
@@ -553,19 +772,28 @@
553
772
  ]
554
773
  },
555
774
  {
775
+ "uuid": "e70defe4-5944-4392-956c-63cb92e7fd9c",
556
776
  "slug": "list-ops",
777
+ "core": false,
778
+ "unlocked_by": null,
557
779
  "difficulty": 8,
558
780
  "topics": [
559
781
  "Data structures",
560
782
  "Lists",
561
783
  "Recursion"
562
784
  ]
785
+ },
786
+ {
787
+ "uuid": "1b53340d-ea40-44ee-bf2e-42e516704e7c",
788
+ "slug": "nucleotide-count",
789
+ "deprecated": true
790
+ },
791
+ {
792
+ "uuid": "e9a6b2ea-a67d-4b75-800d-7b46240094ec",
793
+ "slug": "point-mutations",
794
+ "deprecated": true
563
795
  }
564
796
  ],
565
- "deprecated": [
566
- "nucleotide-count",
567
- "point-mutations"
568
- ],
569
797
  "foregone": [
570
798
 
571
799
  ]