trackler 2.2.0.4 → 2.2.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (486) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/bash/config.json +10 -2
  4. data/tracks/bash/exercises/word-count/example.awk +12 -0
  5. data/tracks/bash/exercises/word-count/example.sh +21 -0
  6. data/tracks/c/config.json +0 -2
  7. data/tracks/ceylon/config.json +0 -2
  8. data/tracks/{erlang/exercises/all-your-base/.meta/readme.go.tmpl → clojure/config/exercise_readme.go.tmpl} +0 -1
  9. data/tracks/clojure/exercises/accumulate/README.md +35 -0
  10. data/tracks/clojure/exercises/acronym/README.md +15 -0
  11. data/tracks/clojure/exercises/all-your-base/README.md +35 -0
  12. data/tracks/clojure/exercises/allergies/README.md +37 -0
  13. data/tracks/clojure/exercises/anagram/README.md +13 -0
  14. data/tracks/clojure/exercises/atbash-cipher/README.md +34 -0
  15. data/tracks/clojure/exercises/bank-account/README.md +30 -0
  16. data/tracks/clojure/exercises/beer-song/README.md +327 -0
  17. data/tracks/clojure/exercises/binary/README.md +35 -0
  18. data/tracks/clojure/exercises/binary-search/README.md +41 -0
  19. data/tracks/clojure/exercises/binary-search-tree/README.md +60 -0
  20. data/tracks/clojure/exercises/bob/README.md +18 -0
  21. data/tracks/clojure/exercises/bracket-push/README.md +10 -0
  22. data/tracks/clojure/exercises/change/README.md +23 -0
  23. data/tracks/clojure/exercises/clock/README.md +13 -0
  24. data/tracks/clojure/exercises/crypto-square/README.md +74 -0
  25. data/tracks/clojure/exercises/difference-of-squares/README.md +19 -0
  26. data/tracks/clojure/exercises/etl/README.md +51 -0
  27. data/tracks/clojure/exercises/flatten-array/README.md +18 -0
  28. data/tracks/clojure/exercises/gigasecond/README.md +11 -0
  29. data/tracks/clojure/exercises/grade-school/README.md +42 -0
  30. data/tracks/clojure/exercises/grains/README.md +34 -0
  31. data/tracks/clojure/exercises/hamming/README.md +42 -0
  32. data/tracks/clojure/exercises/hello-world/README.md +51 -0
  33. data/tracks/clojure/exercises/hexadecimal/README.md +14 -0
  34. data/tracks/clojure/exercises/isogram/README.md +19 -0
  35. data/tracks/clojure/exercises/kindergarten-garden/README.md +66 -0
  36. data/tracks/clojure/exercises/largest-series-product/README.md +20 -0
  37. data/tracks/clojure/exercises/leap/README.md +33 -0
  38. data/tracks/clojure/exercises/luhn/README.md +71 -0
  39. data/tracks/clojure/exercises/meetup/README.md +30 -0
  40. data/tracks/clojure/exercises/minesweeper/README.md +30 -0
  41. data/tracks/clojure/exercises/nth-prime/README.md +15 -0
  42. data/tracks/clojure/exercises/nucleotide-count/README.md +33 -0
  43. data/tracks/clojure/exercises/octal/README.md +49 -0
  44. data/tracks/clojure/exercises/pangram/README.md +15 -0
  45. data/tracks/clojure/exercises/pascals-triangle/README.md +21 -0
  46. data/tracks/clojure/exercises/perfect-numbers/README.md +24 -0
  47. data/tracks/clojure/exercises/phone-number/README.md +34 -0
  48. data/tracks/clojure/exercises/pig-latin/README.md +24 -0
  49. data/tracks/clojure/exercises/pov/README.md +46 -0
  50. data/tracks/clojure/exercises/prime-factors/README.md +36 -0
  51. data/tracks/clojure/exercises/queen-attack/README.md +33 -0
  52. data/tracks/clojure/exercises/raindrops/README.md +24 -0
  53. data/tracks/clojure/exercises/rna-transcription/README.md +25 -0
  54. data/tracks/clojure/exercises/robot-name/README.md +22 -0
  55. data/tracks/clojure/exercises/robot-simulator/README.md +34 -0
  56. data/tracks/clojure/exercises/roman-numerals/README.md +49 -0
  57. data/tracks/clojure/exercises/rotational-cipher/README.md +36 -0
  58. data/tracks/clojure/exercises/scrabble-score/README.md +44 -0
  59. data/tracks/clojure/exercises/secret-handshake/README.md +35 -0
  60. data/tracks/clojure/exercises/sieve/README.md +34 -0
  61. data/tracks/clojure/exercises/space-age/README.md +24 -0
  62. data/tracks/clojure/exercises/strain/README.md +40 -0
  63. data/tracks/clojure/exercises/sublist/README.md +21 -0
  64. data/tracks/clojure/exercises/sum-of-multiples/README.md +18 -0
  65. data/tracks/clojure/exercises/triangle/README.md +26 -0
  66. data/tracks/clojure/exercises/trinary/README.md +28 -0
  67. data/tracks/clojure/exercises/word-count/README.md +19 -0
  68. data/tracks/clojure/exercises/wordy/README.md +63 -0
  69. data/tracks/{erlang/exercises/allergies/.meta/readme.go.tmpl → crystal/config/exercise_readme.go.tmpl} +0 -1
  70. data/tracks/crystal/config.json +0 -2
  71. data/tracks/crystal/exercises/acronym/README.md +38 -0
  72. data/tracks/crystal/exercises/anagram/README.md +36 -0
  73. data/tracks/crystal/exercises/atbash-cipher/README.md +57 -0
  74. data/tracks/crystal/exercises/binary/README.md +58 -0
  75. data/tracks/crystal/exercises/binary-search-tree/README.md +83 -0
  76. data/tracks/crystal/exercises/bob/README.md +41 -0
  77. data/tracks/crystal/exercises/bracket-push/README.md +33 -0
  78. data/tracks/crystal/exercises/difference-of-squares/README.md +42 -0
  79. data/tracks/crystal/exercises/flatten-array/README.md +41 -0
  80. data/tracks/crystal/exercises/forth/README.md +52 -0
  81. data/tracks/crystal/exercises/gigasecond/README.md +34 -0
  82. data/tracks/crystal/exercises/hamming/README.md +65 -0
  83. data/tracks/crystal/exercises/hello-world/README.md +78 -0
  84. data/tracks/crystal/exercises/largest-series-product/README.md +43 -0
  85. data/tracks/crystal/exercises/leap/README.md +56 -0
  86. data/tracks/crystal/exercises/pangram/README.md +38 -0
  87. data/tracks/crystal/exercises/pascals-triangle/README.md +44 -0
  88. data/tracks/crystal/exercises/raindrops/README.md +47 -0
  89. data/tracks/crystal/exercises/react/README.md +42 -0
  90. data/tracks/crystal/exercises/rna-transcription/README.md +48 -0
  91. data/tracks/crystal/exercises/roman-numerals/README.md +72 -0
  92. data/tracks/crystal/exercises/run-length-encoding/README.md +53 -0
  93. data/tracks/crystal/exercises/sieve/README.md +57 -0
  94. data/tracks/csharp/config.json +0 -2
  95. data/tracks/delphi/config.json +0 -2
  96. data/tracks/ecmascript/config.json +63 -2
  97. data/tracks/erlang/{exercises/anagram/.meta/readme.go.tmpl → config/exercise_readme.go.tmpl} +0 -1
  98. data/tracks/erlang/config.json +0 -2
  99. data/tracks/erlang/exercises/accumulate/README.md +0 -1
  100. data/tracks/erlang/exercises/all-your-base/README.md +0 -1
  101. data/tracks/erlang/exercises/allergies/README.md +0 -1
  102. data/tracks/erlang/exercises/anagram/README.md +0 -1
  103. data/tracks/erlang/exercises/atbash-cipher/README.md +0 -1
  104. data/tracks/erlang/exercises/bank-account/README.md +0 -1
  105. data/tracks/erlang/exercises/beer-song/README.md +0 -1
  106. data/tracks/erlang/exercises/bob/README.md +0 -1
  107. data/tracks/erlang/exercises/circular-buffer/README.md +0 -1
  108. data/tracks/erlang/exercises/clock/README.md +0 -1
  109. data/tracks/erlang/exercises/collatz-conjecture/README.md +0 -1
  110. data/tracks/erlang/exercises/difference-of-squares/README.md +0 -1
  111. data/tracks/erlang/exercises/etl/README.md +0 -1
  112. data/tracks/erlang/exercises/gigasecond/README.md +0 -1
  113. data/tracks/erlang/exercises/grade-school/README.md +0 -1
  114. data/tracks/erlang/exercises/grains/README.md +0 -1
  115. data/tracks/erlang/exercises/hamming/README.md +0 -1
  116. data/tracks/erlang/exercises/hello-world/README.md +0 -1
  117. data/tracks/erlang/exercises/largest-series-product/README.md +0 -1
  118. data/tracks/erlang/exercises/leap/README.md +0 -1
  119. data/tracks/erlang/exercises/luhn/README.md +0 -1
  120. data/tracks/erlang/exercises/meetup/README.md +0 -1
  121. data/tracks/erlang/exercises/nucleotide-count/README.md +0 -1
  122. data/tracks/erlang/exercises/parallel-letter-frequency/README.md +0 -1
  123. data/tracks/erlang/exercises/phone-number/README.md +0 -1
  124. data/tracks/erlang/exercises/rna-transcription/README.md +0 -1
  125. data/tracks/erlang/exercises/robot-simulator/README.md +0 -1
  126. data/tracks/erlang/exercises/roman-numerals/README.md +0 -1
  127. data/tracks/erlang/exercises/rotational-cipher/README.md +0 -1
  128. data/tracks/erlang/exercises/scrabble-score/README.md +0 -1
  129. data/tracks/erlang/exercises/series/README.md +0 -1
  130. data/tracks/erlang/exercises/space-age/README.md +0 -1
  131. data/tracks/erlang/exercises/spiral-matrix/README.md +0 -1
  132. data/tracks/erlang/exercises/strain/README.md +0 -1
  133. data/tracks/erlang/exercises/sum-of-multiples/README.md +0 -1
  134. data/tracks/erlang/exercises/triangle/README.md +0 -1
  135. data/tracks/erlang/exercises/word-count/README.md +0 -1
  136. data/tracks/erlang/exercises/zipper/README.md +0 -1
  137. data/tracks/factor/config.json +0 -2
  138. data/tracks/fsharp/config.json +0 -2
  139. data/tracks/go/config.json +12 -6
  140. data/tracks/go/exercises/bank-account/bank_account_test.go +60 -1
  141. data/tracks/go/exercises/error-handling/common.go +17 -0
  142. data/tracks/go/exercises/error-handling/error_handling_test.go +37 -4
  143. data/tracks/haskell/config.json +0 -2
  144. data/tracks/java/config.json +10 -2
  145. data/tracks/{erlang/exercises/accumulate → java/exercises/forth}/.meta/readme.go.tmpl +0 -0
  146. data/tracks/java/exercises/forth/README.md +41 -0
  147. data/tracks/java/exercises/forth/build.gradle +18 -0
  148. data/tracks/java/exercises/forth/src/example/java/ForthEvaluator.java +154 -0
  149. data/tracks/java/exercises/forth/src/example/java/Token.java +90 -0
  150. data/tracks/java/exercises/forth/src/main/java/.keep +0 -0
  151. data/tracks/java/exercises/forth/src/test/java/ForthEvaluatorTest.java +355 -0
  152. data/tracks/java/exercises/settings.gradle +1 -0
  153. data/tracks/javascript/config.json +0 -2
  154. data/tracks/kotlin/config.json +30 -2
  155. data/tracks/kotlin/exercises/forth/README.md +32 -0
  156. data/tracks/kotlin/exercises/forth/build.gradle +28 -0
  157. data/tracks/kotlin/exercises/forth/src/example/kotlin/ForthEvaluator.kt +138 -0
  158. data/tracks/kotlin/exercises/forth/src/main/kotlin/.keep +0 -0
  159. data/tracks/kotlin/exercises/forth/src/test/kotlin/ForthEvaluatorTest.kt +352 -0
  160. data/tracks/kotlin/exercises/meetup/README.md +33 -0
  161. data/tracks/kotlin/exercises/meetup/build.gradle +28 -0
  162. data/tracks/kotlin/exercises/meetup/src/example/kotlin/Meetup.kt +45 -0
  163. data/tracks/kotlin/exercises/meetup/src/example/kotlin/MeetupSchedule.kt +1 -0
  164. data/tracks/kotlin/exercises/meetup/src/main/kotlin/MeetupSchedule.kt +5 -0
  165. data/tracks/kotlin/exercises/meetup/src/test/kotlin/MeetupTest.kt +771 -0
  166. data/tracks/kotlin/exercises/say/README.md +72 -0
  167. data/tracks/kotlin/exercises/say/build.gradle +28 -0
  168. data/tracks/kotlin/exercises/say/src/example/kotlin/NumberSpeller.kt +88 -0
  169. data/tracks/kotlin/exercises/say/src/main/kotlin/.keep +0 -0
  170. data/tracks/kotlin/exercises/say/src/test/kotlin/NumberSpellerTest.kt +138 -0
  171. data/tracks/kotlin/exercises/settings.gradle +3 -0
  172. data/tracks/lua/config.json +0 -2
  173. data/tracks/mips/config.json +0 -2
  174. data/tracks/ocaml/config.json +0 -2
  175. data/tracks/perl5/config.json +262 -67
  176. data/tracks/perl6/config.json +98 -26
  177. data/tracks/php/docs/INSTALLATION.md +1 -1
  178. data/tracks/powershell/config.json +0 -2
  179. data/tracks/purescript/config.json +0 -2
  180. data/tracks/python/README.md +2 -2
  181. data/tracks/python/config/exercise_readme.go.tmpl +16 -0
  182. data/tracks/python/config.json +280 -15
  183. data/tracks/python/exercises/accumulate/README.md +46 -0
  184. data/tracks/python/exercises/acronym/README.md +26 -0
  185. data/tracks/python/exercises/all-your-base/README.md +46 -0
  186. data/tracks/python/exercises/allergies/README.md +48 -0
  187. data/tracks/python/exercises/alphametics/README.md +46 -0
  188. data/tracks/python/exercises/anagram/README.md +24 -0
  189. data/tracks/python/exercises/atbash-cipher/README.md +45 -0
  190. data/tracks/python/exercises/beer-song/README.md +338 -0
  191. data/tracks/python/exercises/binary/README.md +46 -0
  192. data/tracks/python/exercises/binary-search/README.md +52 -0
  193. data/tracks/python/exercises/bob/README.md +29 -0
  194. data/tracks/python/exercises/book-store/README.md +85 -0
  195. data/tracks/python/exercises/bracket-push/README.md +21 -0
  196. data/tracks/python/exercises/circular-buffer/README.md +61 -0
  197. data/tracks/python/exercises/clock/README.md +24 -0
  198. data/tracks/python/exercises/crypto-square/README.md +85 -0
  199. data/tracks/python/exercises/diamond/README.md +70 -0
  200. data/tracks/python/exercises/difference-of-squares/README.md +30 -0
  201. data/tracks/python/exercises/etl/README.md +62 -0
  202. data/tracks/python/exercises/flatten-array/README.md +29 -0
  203. data/tracks/python/exercises/gigasecond/README.md +22 -0
  204. data/tracks/python/exercises/grade-school/README.md +53 -0
  205. data/tracks/python/exercises/grains/README.md +45 -0
  206. data/tracks/python/exercises/grep/README.md +82 -0
  207. data/tracks/python/exercises/hamming/README.md +53 -0
  208. data/tracks/python/exercises/hello-world/README.md +32 -0
  209. data/tracks/python/exercises/hexadecimal/README.md +25 -0
  210. data/tracks/python/exercises/house/README.md +124 -0
  211. data/tracks/python/exercises/isogram/README.md +30 -0
  212. data/tracks/python/exercises/kindergarten-garden/README.md +77 -0
  213. data/tracks/python/exercises/largest-series-product/README.md +31 -0
  214. data/tracks/python/exercises/leap/README.md +44 -0
  215. data/tracks/python/exercises/linked-list/README.md +45 -0
  216. data/tracks/python/exercises/list-ops/README.md +21 -0
  217. data/tracks/python/exercises/luhn/README.md +82 -0
  218. data/tracks/python/exercises/matrix/README.md +56 -0
  219. data/tracks/python/exercises/meetup/README.md +41 -0
  220. data/tracks/python/exercises/minesweeper/README.md +41 -0
  221. data/tracks/python/exercises/nth-prime/README.md +26 -0
  222. data/tracks/python/exercises/nucleotide-count/README.md +44 -0
  223. data/tracks/python/exercises/ocr-numbers/README.md +96 -0
  224. data/tracks/python/exercises/octal/README.md +60 -0
  225. data/tracks/python/exercises/palindrome-products/README.md +51 -0
  226. data/tracks/python/exercises/pangram/README.md +26 -0
  227. data/tracks/python/exercises/pascals-triangle/README.md +32 -0
  228. data/tracks/python/exercises/perfect-numbers/README.md +35 -0
  229. data/tracks/python/exercises/phone-number/README.md +45 -0
  230. data/tracks/python/exercises/pig-latin/README.md +35 -0
  231. data/tracks/python/exercises/point-mutations/README.md +52 -0
  232. data/tracks/python/exercises/poker/README.md +23 -0
  233. data/tracks/python/exercises/prime-factors/README.md +47 -0
  234. data/tracks/python/exercises/protein-translation/README.md +60 -0
  235. data/tracks/python/exercises/proverb/README.md +29 -0
  236. data/tracks/python/exercises/pythagorean-triplet/README.md +35 -0
  237. data/tracks/python/exercises/queen-attack/README.md +44 -0
  238. data/tracks/python/exercises/rail-fence-cipher/README.md +71 -0
  239. data/tracks/python/exercises/raindrops/README.md +35 -0
  240. data/tracks/python/exercises/rectangles/README.md +78 -0
  241. data/tracks/python/exercises/rna-transcription/README.md +36 -0
  242. data/tracks/python/exercises/robot-name/README.md +33 -0
  243. data/tracks/python/exercises/robot-simulator/README.md +45 -0
  244. data/tracks/python/exercises/roman-numerals/README.md +60 -0
  245. data/tracks/python/exercises/rotational-cipher/README.md +47 -0
  246. data/tracks/python/exercises/run-length-encoding/README.md +41 -0
  247. data/tracks/python/exercises/saddle-points/README.md +44 -0
  248. data/tracks/python/exercises/say/README.md +80 -0
  249. data/tracks/python/exercises/scale-generator/README.md +71 -0
  250. data/tracks/python/exercises/scrabble-score/README.md +55 -0
  251. data/tracks/python/exercises/secret-handshake/README.md +46 -0
  252. data/tracks/python/exercises/series/README.md +38 -0
  253. data/tracks/python/exercises/sieve/README.md +45 -0
  254. data/tracks/python/exercises/simple-cipher/README.md +101 -0
  255. data/tracks/python/exercises/space-age/README.md +35 -0
  256. data/tracks/python/exercises/strain/README.md +51 -0
  257. data/tracks/python/exercises/sublist/README.md +32 -0
  258. data/tracks/python/exercises/sum-of-multiples/README.md +29 -0
  259. data/tracks/python/exercises/tournament/README.md +79 -0
  260. data/tracks/python/exercises/transpose/README.md +76 -0
  261. data/tracks/python/exercises/triangle/README.md +37 -0
  262. data/tracks/python/exercises/trinary/README.md +39 -0
  263. data/tracks/python/exercises/twelve-days/README.md +46 -0
  264. data/tracks/python/exercises/variable-length-quantity/README.md +50 -0
  265. data/tracks/python/exercises/word-count/README.md +30 -0
  266. data/tracks/python/exercises/word-search/README.md +41 -0
  267. data/tracks/python/exercises/wordy/README.md +74 -0
  268. data/tracks/python/exercises/zebra-puzzle/README.md +43 -0
  269. data/tracks/python/test/check-exercises.py +2 -3
  270. data/tracks/r/config.json +0 -2
  271. data/tracks/ruby/.travis.yml +1 -1
  272. data/tracks/ruby/config/exercise_readme.go.tmpl +16 -0
  273. data/tracks/ruby/config.json +265 -4
  274. data/tracks/ruby/exercises/accumulate/README.md +76 -0
  275. data/tracks/ruby/exercises/acronym/README.md +41 -0
  276. data/tracks/ruby/exercises/all-your-base/README.md +61 -0
  277. data/tracks/ruby/exercises/allergies/README.md +63 -0
  278. data/tracks/ruby/exercises/alphametics/README.md +61 -0
  279. data/tracks/ruby/exercises/anagram/README.md +39 -0
  280. data/tracks/ruby/exercises/atbash-cipher/README.md +60 -0
  281. data/tracks/ruby/exercises/beer-song/README.md +353 -0
  282. data/tracks/ruby/exercises/binary/README.md +61 -0
  283. data/tracks/ruby/exercises/binary-search/README.md +67 -0
  284. data/tracks/ruby/exercises/binary-search-tree/README.md +86 -0
  285. data/tracks/ruby/exercises/bob/README.md +44 -0
  286. data/tracks/ruby/exercises/bowling/README.md +79 -0
  287. data/tracks/ruby/exercises/bracket-push/README.md +36 -0
  288. data/tracks/ruby/exercises/circular-buffer/README.md +76 -0
  289. data/tracks/ruby/exercises/clock/README.md +39 -0
  290. data/tracks/ruby/exercises/collatz-conjecture/README.md +59 -0
  291. data/tracks/ruby/exercises/connect/README.md +60 -0
  292. data/tracks/ruby/exercises/crypto-square/README.md +100 -0
  293. data/tracks/ruby/exercises/custom-set/README.md +37 -0
  294. data/tracks/ruby/exercises/diamond/README.md +85 -0
  295. data/tracks/ruby/exercises/difference-of-squares/README.md +45 -0
  296. data/tracks/ruby/exercises/dominoes/README.md +44 -0
  297. data/tracks/ruby/exercises/etl/README.md +77 -0
  298. data/tracks/ruby/exercises/flatten-array/README.md +44 -0
  299. data/tracks/ruby/exercises/food-chain/README.md +96 -0
  300. data/tracks/ruby/exercises/gigasecond/README.md +37 -0
  301. data/tracks/ruby/exercises/grade-school/README.md +68 -0
  302. data/tracks/ruby/exercises/grains/README.md +60 -0
  303. data/tracks/ruby/exercises/hamming/README.md +68 -0
  304. data/tracks/ruby/exercises/hello-world/README.md +47 -0
  305. data/tracks/ruby/exercises/hexadecimal/README.md +40 -0
  306. data/tracks/ruby/exercises/house/README.md +139 -0
  307. data/tracks/ruby/exercises/isogram/README.md +45 -0
  308. data/tracks/ruby/exercises/kindergarten-garden/README.md +92 -0
  309. data/tracks/ruby/exercises/largest-series-product/README.md +46 -0
  310. data/tracks/ruby/exercises/leap/README.md +59 -0
  311. data/tracks/ruby/exercises/linked-list/README.md +60 -0
  312. data/tracks/ruby/exercises/list-ops/README.md +36 -0
  313. data/tracks/ruby/exercises/luhn/README.md +97 -0
  314. data/tracks/ruby/exercises/matrix/README.md +71 -0
  315. data/tracks/ruby/exercises/meetup/README.md +56 -0
  316. data/tracks/ruby/exercises/minesweeper/README.md +56 -0
  317. data/tracks/ruby/exercises/nth-prime/README.md +41 -0
  318. data/tracks/ruby/exercises/nucleotide-count/README.md +59 -0
  319. data/tracks/ruby/exercises/ocr-numbers/README.md +111 -0
  320. data/tracks/ruby/exercises/octal/README.md +75 -0
  321. data/tracks/ruby/exercises/palindrome-products/README.md +66 -0
  322. data/tracks/ruby/exercises/pangram/README.md +41 -0
  323. data/tracks/ruby/exercises/pascals-triangle/README.md +47 -0
  324. data/tracks/ruby/exercises/perfect-numbers/README.md +50 -0
  325. data/tracks/ruby/exercises/phone-number/README.md +60 -0
  326. data/tracks/ruby/exercises/pig-latin/README.md +50 -0
  327. data/tracks/ruby/exercises/point-mutations/README.md +67 -0
  328. data/tracks/ruby/exercises/poker/README.md +38 -0
  329. data/tracks/ruby/exercises/prime-factors/README.md +62 -0
  330. data/tracks/ruby/exercises/protein-translation/README.md +75 -0
  331. data/tracks/ruby/exercises/proverb/README.md +44 -0
  332. data/tracks/ruby/exercises/pythagorean-triplet/README.md +50 -0
  333. data/tracks/ruby/exercises/queen-attack/README.md +59 -0
  334. data/tracks/ruby/exercises/rail-fence-cipher/README.md +86 -0
  335. data/tracks/ruby/exercises/raindrops/README.md +50 -0
  336. data/tracks/ruby/exercises/rna-transcription/README.md +51 -0
  337. data/tracks/ruby/exercises/robot-name/README.md +57 -0
  338. data/tracks/ruby/exercises/robot-simulator/README.md +60 -0
  339. data/tracks/ruby/exercises/roman-numerals/README.md +75 -0
  340. data/tracks/ruby/exercises/run-length-encoding/README.md +56 -0
  341. data/tracks/ruby/exercises/saddle-points/README.md +59 -0
  342. data/tracks/ruby/exercises/say/README.md +95 -0
  343. data/tracks/ruby/exercises/scale-generator/README.md +86 -0
  344. data/tracks/ruby/exercises/scrabble-score/README.md +70 -0
  345. data/tracks/ruby/exercises/secret-handshake/README.md +61 -0
  346. data/tracks/ruby/exercises/series/README.md +53 -0
  347. data/tracks/ruby/exercises/sieve/README.md +60 -0
  348. data/tracks/ruby/exercises/simple-cipher/README.md +116 -0
  349. data/tracks/ruby/exercises/simple-linked-list/README.md +54 -0
  350. data/tracks/ruby/exercises/space-age/README.md +50 -0
  351. data/tracks/ruby/exercises/strain/README.md +66 -0
  352. data/tracks/ruby/exercises/sum-of-multiples/README.md +44 -0
  353. data/tracks/ruby/exercises/tournament/README.md +94 -0
  354. data/tracks/ruby/exercises/transpose/README.md +91 -0
  355. data/tracks/ruby/exercises/triangle/README.md +52 -0
  356. data/tracks/ruby/exercises/trinary/README.md +54 -0
  357. data/tracks/ruby/exercises/twelve-days/README.md +61 -0
  358. data/tracks/ruby/exercises/two-bucket/README.md +62 -0
  359. data/tracks/ruby/exercises/word-count/README.md +45 -0
  360. data/tracks/ruby/exercises/wordy/README.md +89 -0
  361. data/tracks/rust/README.md +3 -3
  362. data/tracks/rust/_test/WINDOWS_README.md +44 -0
  363. data/tracks/rust/config.json +9 -2
  364. data/tracks/rust/exercises/pig-latin/Cargo-example.toml +8 -0
  365. data/tracks/rust/exercises/pig-latin/Cargo.lock +4 -0
  366. data/tracks/rust/exercises/pig-latin/Cargo.toml +6 -0
  367. data/tracks/rust/exercises/pig-latin/README.md +56 -0
  368. data/tracks/rust/exercises/pig-latin/example.rs +28 -0
  369. data/tracks/rust/exercises/pig-latin/tests/pig-latin.rs +120 -0
  370. data/tracks/rust/problem_ordering.md +2 -2
  371. data/tracks/sml/config.json +0 -2
  372. data/tracks/swift/config/exercise_readme.go.tmpl +16 -0
  373. data/tracks/swift/config.json +304 -79
  374. data/tracks/swift/exercises/accumulate/README.md +43 -0
  375. data/tracks/swift/exercises/acronym/README.md +23 -0
  376. data/tracks/swift/exercises/all-your-base/README.md +43 -0
  377. data/tracks/swift/exercises/allergies/README.md +45 -0
  378. data/tracks/swift/exercises/anagram/README.md +21 -0
  379. data/tracks/swift/exercises/atbash-cipher/README.md +42 -0
  380. data/tracks/swift/exercises/beer-song/README.md +335 -0
  381. data/tracks/swift/exercises/binary/README.md +43 -0
  382. data/tracks/swift/exercises/binary-search/README.md +49 -0
  383. data/tracks/swift/exercises/binary-search-tree/README.md +68 -0
  384. data/tracks/swift/exercises/bob/README.md +26 -0
  385. data/tracks/swift/exercises/bowling/README.md +61 -0
  386. data/tracks/swift/exercises/bracket-push/README.md +18 -0
  387. data/tracks/swift/exercises/clock/README.md +21 -0
  388. data/tracks/swift/exercises/crypto-square/README.md +82 -0
  389. data/tracks/swift/exercises/custom-set/README.md +19 -0
  390. data/tracks/swift/exercises/difference-of-squares/README.md +27 -0
  391. data/tracks/swift/exercises/dominoes/README.md +26 -0
  392. data/tracks/swift/exercises/etl/README.md +59 -0
  393. data/tracks/swift/exercises/flatten-array/README.md +26 -0
  394. data/tracks/swift/exercises/food-chain/README.md +78 -0
  395. data/tracks/swift/exercises/gigasecond/README.md +19 -0
  396. data/tracks/swift/exercises/grade-school/README.md +50 -0
  397. data/tracks/swift/exercises/grains/README.md +42 -0
  398. data/tracks/swift/exercises/hamming/README.md +50 -0
  399. data/tracks/swift/exercises/hello-world/README.md +29 -0
  400. data/tracks/swift/exercises/hexadecimal/README.md +22 -0
  401. data/tracks/swift/exercises/house/README.md +121 -0
  402. data/tracks/swift/exercises/isogram/README.md +27 -0
  403. data/tracks/swift/exercises/kindergarten-garden/README.md +74 -0
  404. data/tracks/swift/exercises/largest-series-product/README.md +28 -0
  405. data/tracks/swift/exercises/leap/README.md +41 -0
  406. data/tracks/swift/exercises/linked-list/README.md +42 -0
  407. data/tracks/swift/exercises/luhn/README.md +79 -0
  408. data/tracks/swift/exercises/matrix/README.md +53 -0
  409. data/tracks/swift/exercises/meetup/README.md +38 -0
  410. data/tracks/swift/exercises/minesweeper/README.md +38 -0
  411. data/tracks/swift/exercises/nth-prime/README.md +23 -0
  412. data/tracks/swift/exercises/nucleotide-count/README.md +41 -0
  413. data/tracks/swift/exercises/ocr-numbers/README.md +93 -0
  414. data/tracks/swift/exercises/octal/README.md +57 -0
  415. data/tracks/swift/exercises/palindrome-products/README.md +48 -0
  416. data/tracks/swift/exercises/pangram/README.md +23 -0
  417. data/tracks/swift/exercises/pascals-triangle/README.md +29 -0
  418. data/tracks/swift/exercises/perfect-numbers/README.md +32 -0
  419. data/tracks/swift/exercises/phone-number/README.md +42 -0
  420. data/tracks/swift/exercises/pig-latin/README.md +32 -0
  421. data/tracks/swift/exercises/poker/README.md +20 -0
  422. data/tracks/swift/exercises/prime-factors/README.md +44 -0
  423. data/tracks/swift/exercises/pythagorean-triplet/README.md +32 -0
  424. data/tracks/swift/exercises/queen-attack/README.md +41 -0
  425. data/tracks/swift/exercises/raindrops/README.md +32 -0
  426. data/tracks/swift/exercises/rna-transcription/README.md +33 -0
  427. data/tracks/swift/exercises/robot-name/README.md +30 -0
  428. data/tracks/swift/exercises/robot-simulator/README.md +42 -0
  429. data/tracks/swift/exercises/roman-numerals/README.md +57 -0
  430. data/tracks/swift/exercises/run-length-encoding/README.md +38 -0
  431. data/tracks/swift/exercises/saddle-points/README.md +41 -0
  432. data/tracks/swift/exercises/scrabble-score/README.md +52 -0
  433. data/tracks/swift/exercises/secret-handshake/README.md +43 -0
  434. data/tracks/swift/exercises/series/README.md +35 -0
  435. data/tracks/swift/exercises/sieve/README.md +42 -0
  436. data/tracks/swift/exercises/simple-cipher/README.md +98 -0
  437. data/tracks/swift/exercises/simple-linked-list/README.md +36 -0
  438. data/tracks/swift/exercises/space-age/README.md +32 -0
  439. data/tracks/swift/exercises/strain/README.md +48 -0
  440. data/tracks/swift/exercises/sublist/README.md +29 -0
  441. data/tracks/swift/exercises/sum-of-multiples/README.md +26 -0
  442. data/tracks/swift/exercises/tournament/README.md +76 -0
  443. data/tracks/swift/exercises/transpose/README.md +73 -0
  444. data/tracks/swift/exercises/triangle/README.md +34 -0
  445. data/tracks/swift/exercises/trinary/README.md +36 -0
  446. data/tracks/swift/exercises/twelve-days/README.md +43 -0
  447. data/tracks/swift/exercises/word-count/README.md +27 -0
  448. data/tracks/swift/exercises/wordy/README.md +71 -0
  449. data/tracks/typescript/README.md +1 -1
  450. data/tracks/typescript/config.json +63 -3
  451. data/tracks/vimscript/config.json +0 -2
  452. metadata +371 -40
  453. data/tracks/erlang/exercises/atbash-cipher/.meta/readme.go.tmpl +0 -17
  454. data/tracks/erlang/exercises/bank-account/.meta/readme.go.tmpl +0 -17
  455. data/tracks/erlang/exercises/beer-song/.meta/readme.go.tmpl +0 -17
  456. data/tracks/erlang/exercises/bob/.meta/readme.go.tmpl +0 -17
  457. data/tracks/erlang/exercises/circular-buffer/.meta/readme.go.tmpl +0 -17
  458. data/tracks/erlang/exercises/clock/.meta/readme.go.tmpl +0 -17
  459. data/tracks/erlang/exercises/collatz-conjecture/.meta/readme.go.tmpl +0 -17
  460. data/tracks/erlang/exercises/difference-of-squares/.meta/readme.go.tmpl +0 -17
  461. data/tracks/erlang/exercises/etl/.meta/readme.go.tmpl +0 -17
  462. data/tracks/erlang/exercises/gigasecond/.meta/readme.go.tmpl +0 -17
  463. data/tracks/erlang/exercises/grade-school/.meta/readme.go.tmpl +0 -17
  464. data/tracks/erlang/exercises/grains/.meta/readme.go.tmpl +0 -17
  465. data/tracks/erlang/exercises/hamming/.meta/readme.go.tmpl +0 -17
  466. data/tracks/erlang/exercises/hello-world/.meta/readme.go.tmpl +0 -17
  467. data/tracks/erlang/exercises/largest-series-product/.meta/readme.go.tmpl +0 -17
  468. data/tracks/erlang/exercises/leap/.meta/readme.go.tmpl +0 -17
  469. data/tracks/erlang/exercises/luhn/.meta/readme.go.tmpl +0 -17
  470. data/tracks/erlang/exercises/meetup/.meta/readme.go.tmpl +0 -17
  471. data/tracks/erlang/exercises/nucleotide-count/.meta/readme.go.tmpl +0 -17
  472. data/tracks/erlang/exercises/parallel-letter-frequency/.meta/readme.go.tmpl +0 -17
  473. data/tracks/erlang/exercises/phone-number/.meta/readme.go.tmpl +0 -17
  474. data/tracks/erlang/exercises/rna-transcription/.meta/readme.go.tmpl +0 -17
  475. data/tracks/erlang/exercises/robot-simulator/.meta/readme.go.tmpl +0 -17
  476. data/tracks/erlang/exercises/roman-numerals/.meta/readme.go.tmpl +0 -17
  477. data/tracks/erlang/exercises/rotational-cipher/.meta/readme.go.tmpl +0 -17
  478. data/tracks/erlang/exercises/scrabble-score/.meta/readme.go.tmpl +0 -17
  479. data/tracks/erlang/exercises/series/.meta/readme.go.tmpl +0 -17
  480. data/tracks/erlang/exercises/space-age/.meta/readme.go.tmpl +0 -17
  481. data/tracks/erlang/exercises/spiral-matrix/.meta/readme.go.tmpl +0 -17
  482. data/tracks/erlang/exercises/strain/.meta/readme.go.tmpl +0 -17
  483. data/tracks/erlang/exercises/sum-of-multiples/.meta/readme.go.tmpl +0 -17
  484. data/tracks/erlang/exercises/triangle/.meta/readme.go.tmpl +0 -17
  485. data/tracks/erlang/exercises/word-count/.meta/readme.go.tmpl +0 -17
  486. data/tracks/erlang/exercises/zipper/.meta/readme.go.tmpl +0 -17
@@ -1,230 +1,315 @@
1
1
  {
2
- "slug": "swift",
3
2
  "language": "Swift",
4
- "repository": "https://github.com/exercism/swift",
5
3
  "active": true,
6
4
  "exercises": [
7
5
  {
8
- "difficulty": 1,
6
+ "uuid": "63906530-1e13-491a-ab17-aee66d619fd8",
9
7
  "slug": "hello-world",
8
+ "core": false,
9
+ "unlocked_by": null,
10
+ "difficulty": 1,
10
11
  "topics": [
11
12
  "Text formatting",
12
13
  "Optional values"
13
14
  ]
14
15
  },
15
16
  {
16
- "difficulty": 1,
17
+ "uuid": "53ca7b6a-cdba-4d6d-a564-06e59700a6e4",
17
18
  "slug": "leap",
19
+ "core": false,
20
+ "unlocked_by": null,
21
+ "difficulty": 1,
18
22
  "topics": [
19
23
  "Integers"
20
24
  ]
21
25
  },
22
26
  {
23
- "difficulty": 1,
27
+ "uuid": "0a1ae85a-1d89-453a-8b97-303181d7874d",
24
28
  "slug": "gigasecond",
29
+ "core": false,
30
+ "unlocked_by": null,
31
+ "difficulty": 1,
25
32
  "topics": [
26
33
  "Dates"
27
34
  ]
28
35
  },
29
36
  {
30
- "difficulty": 1,
37
+ "uuid": "ef114733-886b-4d4b-a713-3ba169a85025",
31
38
  "slug": "difference-of-squares",
39
+ "core": false,
40
+ "unlocked_by": null,
41
+ "difficulty": 1,
32
42
  "topics": [
33
43
  "Integers"
34
44
  ]
35
45
  },
36
46
  {
37
- "difficulty": 1,
47
+ "uuid": "537f8ccd-31ac-41d3-a5fa-39359340d1cb",
38
48
  "slug": "rna-transcription",
49
+ "core": false,
50
+ "unlocked_by": null,
51
+ "difficulty": 1,
39
52
  "topics": [
40
53
  "Strings",
41
54
  "Transforming"
42
55
  ]
43
56
  },
44
57
  {
45
- "difficulty": 1,
58
+ "uuid": "b9736756-7022-4a82-b0ea-47b738b1b607",
46
59
  "slug": "sum-of-multiples",
60
+ "core": false,
61
+ "unlocked_by": null,
62
+ "difficulty": 1,
47
63
  "topics": [
48
64
  "Lists",
49
65
  "Transforming"
50
66
  ]
51
67
  },
52
68
  {
53
- "difficulty": 1,
69
+ "uuid": "aaa19946-ab8b-4035-815a-a1f8218ea38b",
54
70
  "slug": "space-age",
71
+ "core": false,
72
+ "unlocked_by": null,
73
+ "difficulty": 1,
55
74
  "topics": [
56
75
  "Discriminated unions",
57
76
  "Floating-point numbers"
58
77
  ]
59
78
  },
60
79
  {
61
- "difficulty": 2,
80
+ "uuid": "49051b88-063a-4fa1-b920-6ca9a6f9bc60",
62
81
  "slug": "bob",
82
+ "core": false,
83
+ "unlocked_by": null,
84
+ "difficulty": 2,
63
85
  "topics": [
64
86
  "Strings",
65
87
  "Control-flow (if-else statements)"
66
88
  ]
67
89
  },
68
90
  {
69
- "difficulty": 2,
91
+ "uuid": "b7d90715-b241-4c59-8457-f637efd14bda",
70
92
  "slug": "grains",
93
+ "core": false,
94
+ "unlocked_by": null,
95
+ "difficulty": 2,
71
96
  "topics": [
72
97
  "Integers"
73
98
  ]
74
99
  },
75
100
  {
76
- "difficulty": 2,
101
+ "uuid": "b3cd804f-4ac2-44c7-997b-066779a1b5e6",
77
102
  "slug": "hamming",
103
+ "core": false,
104
+ "unlocked_by": null,
105
+ "difficulty": 2,
78
106
  "topics": [
79
107
  "Strings",
80
108
  "Filtering"
81
109
  ]
82
110
  },
83
111
  {
84
- "difficulty": 2,
112
+ "uuid": "82fe74be-1589-41fc-966c-10c7b756a2f2",
85
113
  "slug": "nucleotide-count",
114
+ "core": false,
115
+ "unlocked_by": null,
116
+ "difficulty": 2,
86
117
  "topics": [
87
118
  "Maps",
88
119
  "Strings"
89
120
  ]
90
121
  },
91
122
  {
92
- "difficulty": 2,
123
+ "uuid": "cb5bc145-8249-4b3b-bcb3-b8d7805f2a14",
93
124
  "slug": "accumulate",
125
+ "core": false,
126
+ "unlocked_by": null,
127
+ "difficulty": 2,
94
128
  "topics": [
95
129
  "Recursion",
96
130
  "Transforming"
97
131
  ]
98
132
  },
99
133
  {
100
- "difficulty": 2,
134
+ "uuid": "60b3b28e-06cb-4a5e-b458-380b6f542ed0",
101
135
  "slug": "raindrops",
136
+ "core": false,
137
+ "unlocked_by": null,
138
+ "difficulty": 2,
102
139
  "topics": [
103
140
  "Text formatting",
104
141
  "Filtering"
105
142
  ]
106
143
  },
107
144
  {
108
- "difficulty": 2,
145
+ "uuid": "d1ab2908-8f95-42cd-b40e-b571287ea744",
109
146
  "slug": "grade-school",
147
+ "core": false,
148
+ "unlocked_by": null,
149
+ "difficulty": 2,
110
150
  "topics": [
111
151
  "Maps",
112
152
  "Sorting"
113
153
  ]
114
154
  },
115
155
  {
116
- "difficulty": 2,
156
+ "uuid": "71eb6dd0-1d0d-4aaa-bb22-604cece45bd7",
117
157
  "slug": "etl",
158
+ "core": false,
159
+ "unlocked_by": null,
160
+ "difficulty": 2,
118
161
  "topics": [
119
162
  "Maps",
120
163
  "Transforming"
121
164
  ]
122
165
  },
123
166
  {
124
- "difficulty": 2,
167
+ "uuid": "066d2666-deeb-4d99-8314-36d72fbf9afd",
125
168
  "slug": "isogram",
169
+ "core": false,
170
+ "unlocked_by": null,
171
+ "difficulty": 2,
126
172
  "topics": [
127
173
  "Strings",
128
174
  "Filtering"
129
175
  ]
130
176
  },
131
177
  {
132
- "difficulty": 3,
178
+ "uuid": "3ee3ebf1-5cc0-4905-afc4-17e77b9d55a5",
133
179
  "slug": "clock",
180
+ "core": false,
181
+ "unlocked_by": null,
182
+ "difficulty": 3,
134
183
  "topics": [
135
184
  "Time",
136
185
  "Structural equality"
137
186
  ]
138
187
  },
139
188
  {
140
- "difficulty": 3,
189
+ "uuid": "27671176-d9e4-4060-816c-be6158568269",
141
190
  "slug": "triangle",
191
+ "core": false,
192
+ "unlocked_by": null,
193
+ "difficulty": 3,
142
194
  "topics": [
143
195
  "Integers",
144
196
  "Discriminated unions"
145
197
  ]
146
198
  },
147
199
  {
148
- "difficulty": 3,
200
+ "uuid": "219f45e1-1475-431e-a087-3c36a557e1a0",
149
201
  "slug": "robot-name",
202
+ "core": false,
203
+ "unlocked_by": null,
204
+ "difficulty": 3,
150
205
  "topics": [
151
206
  "Randomness",
152
207
  "Strings"
153
208
  ]
154
209
  },
155
210
  {
156
- "difficulty": 3,
211
+ "uuid": "5d215619-65d0-4e0c-b592-3eb0747e43c5",
157
212
  "slug": "scrabble-score",
213
+ "core": false,
214
+ "unlocked_by": null,
215
+ "difficulty": 3,
158
216
  "topics": [
159
217
  "Transforming"
160
218
  ]
161
219
  },
162
220
  {
163
- "difficulty": 3,
221
+ "uuid": "4420075e-e1b2-4790-922e-4a0650d87036",
164
222
  "slug": "kindergarten-garden",
223
+ "core": false,
224
+ "unlocked_by": null,
225
+ "difficulty": 3,
165
226
  "topics": [
166
227
  "Parsing",
167
228
  "Enumerations"
168
229
  ]
169
230
  },
170
231
  {
171
- "difficulty": 3,
232
+ "uuid": "5d590847-775c-4b16-9a11-39b208b5c0b2",
172
233
  "slug": "queen-attack",
234
+ "core": false,
235
+ "unlocked_by": null,
236
+ "difficulty": 3,
173
237
  "topics": [
174
238
  "Tuples"
175
239
  ]
176
240
  },
177
241
  {
178
- "difficulty": 3,
242
+ "uuid": "2be64fe9-cc46-437b-ad3f-43ca3ac7a786",
179
243
  "slug": "strain",
244
+ "core": false,
245
+ "unlocked_by": null,
246
+ "difficulty": 3,
180
247
  "topics": [
181
248
  "Sequences",
182
249
  "Filtering"
183
250
  ]
184
251
  },
185
252
  {
186
- "difficulty": 3,
253
+ "uuid": "571de186-7791-4fc3-b6b2-5ab0ed50a2cb",
187
254
  "slug": "sieve",
255
+ "core": false,
256
+ "unlocked_by": null,
257
+ "difficulty": 3,
188
258
  "topics": [
189
259
  "Filtering",
190
260
  "Mathematics"
191
261
  ]
192
262
  },
193
263
  {
194
- "difficulty": 3,
264
+ "uuid": "de217063-bb3a-4593-850e-887fe8b74924",
195
265
  "slug": "phone-number",
266
+ "core": false,
267
+ "unlocked_by": null,
268
+ "difficulty": 3,
196
269
  "topics": [
197
270
  "Parsing",
198
271
  "Transforming"
199
272
  ]
200
273
  },
201
274
  {
202
- "difficulty": 3,
275
+ "uuid": "3eeb8ae0-c8e6-4388-9e4e-b83b8ad2470e",
203
276
  "slug": "perfect-numbers",
277
+ "core": false,
278
+ "unlocked_by": null,
279
+ "difficulty": 3,
204
280
  "topics": [
205
281
  "Integers",
206
282
  "Discriminated unions"
207
283
  ]
208
284
  },
209
285
  {
210
- "difficulty": 3,
286
+ "uuid": "2fb516ce-6b89-4e0a-b240-d6f024ed5ff2",
211
287
  "slug": "robot-simulator",
288
+ "core": false,
289
+ "unlocked_by": null,
290
+ "difficulty": 3,
212
291
  "topics": [
213
292
  "Records",
214
293
  "Tuples"
215
294
  ]
216
295
  },
217
296
  {
218
- "difficulty": 3,
297
+ "uuid": "a4a4e5a0-0226-4082-9a82-3cba2c2d4786",
219
298
  "slug": "binary-search",
299
+ "core": false,
300
+ "unlocked_by": null,
301
+ "difficulty": 3,
220
302
  "topics": [
221
303
  "Searching",
222
304
  "Lists"
223
305
  ]
224
306
  },
225
307
  {
226
- "difficulty": 3,
308
+ "uuid": "b113d981-8fc8-4572-b3e0-7ba7a07419de",
227
309
  "slug": "flatten-array",
310
+ "core": false,
311
+ "unlocked_by": null,
312
+ "difficulty": 3,
228
313
  "topics": [
229
314
  "Searching",
230
315
  "Looping",
@@ -232,24 +317,33 @@
232
317
  ]
233
318
  },
234
319
  {
235
- "difficulty": 3,
320
+ "uuid": "5bd37dff-8b10-4e96-8b04-a37a8565338b",
236
321
  "slug": "sublist",
322
+ "core": false,
323
+ "unlocked_by": null,
324
+ "difficulty": 3,
237
325
  "topics": [
238
326
  "Looping",
239
327
  "Lists"
240
328
  ]
241
329
  },
242
330
  {
243
- "difficulty": 3,
331
+ "uuid": "ea9feed8-481a-4bd0-9af8-7ca44433c266",
244
332
  "slug": "secret-handshake",
333
+ "core": false,
334
+ "unlocked_by": null,
335
+ "difficulty": 3,
245
336
  "topics": [
246
337
  "Bitwise operations",
247
338
  "Lists"
248
339
  ]
249
340
  },
250
341
  {
251
- "difficulty": 4,
342
+ "uuid": "495a61a4-1bef-402e-a50c-b0d9a2abfe19",
252
343
  "slug": "word-count",
344
+ "core": false,
345
+ "unlocked_by": null,
346
+ "difficulty": 4,
253
347
  "topics": [
254
348
  "Strings",
255
349
  "Maps",
@@ -257,8 +351,11 @@
257
351
  ]
258
352
  },
259
353
  {
260
- "difficulty": 4,
354
+ "uuid": "d9894c7f-afeb-4d34-a967-53285571fdac",
261
355
  "slug": "allergies",
356
+ "core": false,
357
+ "unlocked_by": null,
358
+ "difficulty": 4,
262
359
  "topics": [
263
360
  "Enumerations",
264
361
  "Bitwise operations",
@@ -266,8 +363,11 @@
266
363
  ]
267
364
  },
268
365
  {
269
- "difficulty": 4,
366
+ "uuid": "53f022ee-903e-4ee1-aabc-2db0a68d4b1c",
270
367
  "slug": "beer-song",
368
+ "core": false,
369
+ "unlocked_by": null,
370
+ "difficulty": 4,
271
371
  "topics": [
272
372
  "Looping",
273
373
  "Conditionals",
@@ -275,31 +375,43 @@
275
375
  ]
276
376
  },
277
377
  {
278
- "difficulty": 4,
378
+ "uuid": "5671c927-5e04-4207-b947-f8e9715aa7ef",
279
379
  "slug": "twelve-days",
380
+ "core": false,
381
+ "unlocked_by": null,
382
+ "difficulty": 4,
280
383
  "topics": [
281
384
  "Text formatting",
282
385
  "Algorithms"
283
386
  ]
284
387
  },
285
388
  {
286
- "difficulty": 4,
389
+ "uuid": "a306e9d3-5cd0-42c7-99ed-72ad4b5eba24",
287
390
  "slug": "meetup",
391
+ "core": false,
392
+ "unlocked_by": null,
393
+ "difficulty": 4,
288
394
  "topics": [
289
395
  "Dates"
290
396
  ]
291
397
  },
292
398
  {
293
- "difficulty": 4,
399
+ "uuid": "f2742e98-d6fe-4280-b4e6-ba1b2fd325f8",
294
400
  "slug": "anagram",
401
+ "core": false,
402
+ "unlocked_by": null,
403
+ "difficulty": 4,
295
404
  "topics": [
296
405
  "Strings",
297
406
  "Filtering"
298
407
  ]
299
408
  },
300
409
  {
301
- "difficulty": 4,
410
+ "uuid": "452cd259-2c71-4c90-a0ff-ac39c23e1f55",
302
411
  "slug": "series",
412
+ "core": false,
413
+ "unlocked_by": null,
414
+ "difficulty": 4,
303
415
  "topics": [
304
416
  "Strings",
305
417
  "Lists",
@@ -307,39 +419,54 @@
307
419
  ]
308
420
  },
309
421
  {
310
- "difficulty": 4,
422
+ "uuid": "6a1d09f6-9a1a-4952-8543-d6a07b8158ce",
311
423
  "slug": "simple-linked-list",
424
+ "core": false,
425
+ "unlocked_by": null,
426
+ "difficulty": 4,
312
427
  "topics": [
313
428
  "Lists"
314
429
  ]
315
430
  },
316
431
  {
317
- "difficulty": 4,
432
+ "uuid": "7359a818-ffa5-4ce0-be35-cc66654f9af2",
318
433
  "slug": "acronym",
434
+ "core": false,
435
+ "unlocked_by": null,
436
+ "difficulty": 4,
319
437
  "topics": [
320
438
  "Strings",
321
439
  "Transforming"
322
440
  ]
323
441
  },
324
442
  {
325
- "difficulty": 4,
443
+ "uuid": "84fe8e39-f7e3-4295-be9d-5256b59d800d",
326
444
  "slug": "matrix",
445
+ "core": false,
446
+ "unlocked_by": null,
447
+ "difficulty": 4,
327
448
  "topics": [
328
449
  "Matrices",
329
450
  "Parsing"
330
451
  ]
331
452
  },
332
453
  {
333
- "difficulty": 4,
454
+ "uuid": "77f7a53c-ef83-4f26-b758-5ded1010a61a",
334
455
  "slug": "all-your-base",
456
+ "core": false,
457
+ "unlocked_by": null,
458
+ "difficulty": 4,
335
459
  "topics": [
336
460
  "Integers",
337
461
  "Transforming"
338
462
  ]
339
463
  },
340
464
  {
341
- "difficulty": 4,
465
+ "uuid": "471e5cdc-438d-4930-b830-cdd4c144740e",
342
466
  "slug": "largest-series-product",
467
+ "core": false,
468
+ "unlocked_by": null,
469
+ "difficulty": 4,
343
470
  "topics": [
344
471
  "Strings",
345
472
  "Integers",
@@ -347,16 +474,22 @@
347
474
  ]
348
475
  },
349
476
  {
350
- "difficulty": 4,
477
+ "uuid": "880a9644-13b3-4c24-9a95-24454804f804",
351
478
  "slug": "house",
479
+ "core": false,
480
+ "unlocked_by": null,
481
+ "difficulty": 4,
352
482
  "topics": [
353
483
  "Text formatting",
354
484
  "Algorithms"
355
485
  ]
356
486
  },
357
487
  {
358
- "difficulty": 4,
488
+ "uuid": "24ed2341-31f0-494b-83d0-a9fa74d4f07b",
359
489
  "slug": "pythagorean-triplet",
490
+ "core": false,
491
+ "unlocked_by": null,
492
+ "difficulty": 4,
360
493
  "topics": [
361
494
  "Records",
362
495
  "Integers",
@@ -364,16 +497,22 @@
364
497
  ]
365
498
  },
366
499
  {
367
- "difficulty": 4,
500
+ "uuid": "402469d7-5735-46ea-8122-1faf90ae7d6e",
368
501
  "slug": "saddle-points",
502
+ "core": false,
503
+ "unlocked_by": null,
504
+ "difficulty": 4,
369
505
  "topics": [
370
506
  "Matrices",
371
507
  "Lists"
372
508
  ]
373
509
  },
374
510
  {
375
- "difficulty": 4,
511
+ "uuid": "3b13f3f5-2d75-4dc0-8be0-e05694425fe2",
376
512
  "slug": "pascals-triangle",
513
+ "core": false,
514
+ "unlocked_by": null,
515
+ "difficulty": 4,
377
516
  "topics": [
378
517
  "Recursion",
379
518
  "Lists",
@@ -381,55 +520,76 @@
381
520
  ]
382
521
  },
383
522
  {
384
- "difficulty": 4,
523
+ "uuid": "e651057d-a36f-4c81-a341-f12859ac37a3",
385
524
  "slug": "prime-factors",
525
+ "core": false,
526
+ "unlocked_by": null,
527
+ "difficulty": 4,
386
528
  "topics": [
387
529
  "Integers",
388
530
  "Mathematics"
389
531
  ]
390
532
  },
391
533
  {
392
- "difficulty": 4,
534
+ "uuid": "c4dc447b-80d5-45a0-983d-25edc34cc6cf",
393
535
  "slug": "pangram",
536
+ "core": false,
537
+ "unlocked_by": null,
538
+ "difficulty": 4,
394
539
  "topics": [
395
540
  "Strings",
396
541
  "Searching"
397
542
  ]
398
543
  },
399
544
  {
400
- "difficulty": 5,
545
+ "uuid": "942d0c4b-eaef-4576-b3f8-383757c53768",
401
546
  "slug": "roman-numerals",
547
+ "core": false,
548
+ "unlocked_by": null,
549
+ "difficulty": 5,
402
550
  "topics": [
403
551
  "Recursion",
404
552
  "Transforming"
405
553
  ]
406
554
  },
407
555
  {
408
- "difficulty": 5,
556
+ "uuid": "131206b1-8f1c-4906-9c31-7a077c6125be",
409
557
  "slug": "binary-search-tree",
558
+ "core": false,
559
+ "unlocked_by": null,
560
+ "difficulty": 5,
410
561
  "topics": [
411
562
  "Searching",
412
563
  "Trees"
413
564
  ]
414
565
  },
415
566
  {
416
- "difficulty": 5,
567
+ "uuid": "bbe12b06-cc63-46cd-9379-4865bf9171eb",
417
568
  "slug": "ocr-numbers",
569
+ "core": false,
570
+ "unlocked_by": null,
571
+ "difficulty": 5,
418
572
  "topics": [
419
573
  "Parsing",
420
574
  "Pattern recognition"
421
575
  ]
422
576
  },
423
577
  {
424
- "difficulty": 5,
578
+ "uuid": "ecedbfe8-b578-4af7-8e8c-470809adbc42",
425
579
  "slug": "linked-list",
580
+ "core": false,
581
+ "unlocked_by": null,
582
+ "difficulty": 5,
426
583
  "topics": [
427
584
  "Lists"
428
585
  ]
429
586
  },
430
587
  {
431
- "difficulty": 5,
588
+ "uuid": "414351cd-580a-4608-b9ce-9003f3cdb242",
432
589
  "slug": "simple-cipher",
590
+ "core": false,
591
+ "unlocked_by": null,
592
+ "difficulty": 5,
433
593
  "topics": [
434
594
  "Strings",
435
595
  "Algorithms",
@@ -437,8 +597,11 @@
437
597
  ]
438
598
  },
439
599
  {
440
- "difficulty": 5,
600
+ "uuid": "c5adab05-2b19-4544-8abd-159af71196f5",
441
601
  "slug": "atbash-cipher",
602
+ "core": false,
603
+ "unlocked_by": null,
604
+ "difficulty": 5,
442
605
  "topics": [
443
606
  "Strings",
444
607
  "Algorithms",
@@ -446,23 +609,32 @@
446
609
  ]
447
610
  },
448
611
  {
449
- "difficulty": 5,
612
+ "uuid": "49f50818-3574-450e-9d57-6b23e62db5f8",
450
613
  "slug": "food-chain",
614
+ "core": false,
615
+ "unlocked_by": null,
616
+ "difficulty": 5,
451
617
  "topics": [
452
618
  "Text formatting",
453
619
  "Algorithms"
454
620
  ]
455
621
  },
456
622
  {
457
- "difficulty": 5,
623
+ "uuid": "93731f15-38da-4e28-bfa0-6a3006a4f2c6",
458
624
  "slug": "custom-set",
625
+ "core": false,
626
+ "unlocked_by": null,
627
+ "difficulty": 5,
459
628
  "topics": [
460
629
  "Sets"
461
630
  ]
462
631
  },
463
632
  {
464
- "difficulty": 5,
633
+ "uuid": "68f60053-41dc-4376-a0e2-bcb3b736aab3",
465
634
  "slug": "crypto-square",
635
+ "core": false,
636
+ "unlocked_by": null,
637
+ "difficulty": 5,
466
638
  "topics": [
467
639
  "Strings",
468
640
  "Algorithms",
@@ -470,8 +642,11 @@
470
642
  ]
471
643
  },
472
644
  {
473
- "difficulty": 5,
645
+ "uuid": "a7e26cf2-45b9-4b41-8143-a2b8e2104dec",
474
646
  "slug": "luhn",
647
+ "core": false,
648
+ "unlocked_by": null,
649
+ "difficulty": 5,
475
650
  "topics": [
476
651
  "Strings",
477
652
  "Algorithms",
@@ -479,38 +654,53 @@
479
654
  ]
480
655
  },
481
656
  {
482
- "difficulty": 5,
657
+ "uuid": "0718397c-b823-4b38-9892-69b667cf895f",
483
658
  "slug": "run-length-encoding",
659
+ "core": false,
660
+ "unlocked_by": null,
661
+ "difficulty": 5,
484
662
  "topics": [
485
663
  "Algorithms",
486
664
  "Transforming"
487
665
  ]
488
666
  },
489
667
  {
490
- "difficulty": 6,
668
+ "uuid": "3a699a07-f0ab-4db2-bb0e-99aa968f1ad8",
491
669
  "slug": "tournament",
670
+ "core": false,
671
+ "unlocked_by": null,
672
+ "difficulty": 6,
492
673
  "topics": [
493
674
  "Text formatting",
494
675
  "Parsing"
495
676
  ]
496
677
  },
497
678
  {
498
- "difficulty": 6,
679
+ "uuid": "beb0c7dd-69aa-4e9b-a0df-f1d507221b21",
499
680
  "slug": "bowling",
681
+ "core": false,
682
+ "unlocked_by": null,
683
+ "difficulty": 6,
500
684
  "topics": [
501
685
  "Algorithms"
502
686
  ]
503
687
  },
504
688
  {
505
- "difficulty": 6,
689
+ "uuid": "031f1ab5-5233-4d9b-8f55-0a662014a05c",
506
690
  "slug": "nth-prime",
691
+ "core": false,
692
+ "unlocked_by": null,
693
+ "difficulty": 6,
507
694
  "topics": [
508
695
  "Mathematics"
509
696
  ]
510
697
  },
511
698
  {
512
- "difficulty": 6,
699
+ "uuid": "b96cace1-8666-4607-91e7-0203b4f7434f",
513
700
  "slug": "palindrome-products",
701
+ "core": false,
702
+ "unlocked_by": null,
703
+ "difficulty": 6,
514
704
  "topics": [
515
705
  "Strings",
516
706
  "Tuples",
@@ -518,48 +708,66 @@
518
708
  ]
519
709
  },
520
710
  {
521
- "difficulty": 6,
711
+ "uuid": "5a9f6db4-7bee-4dda-a1ef-1d0bd1dad24e",
522
712
  "slug": "pig-latin",
713
+ "core": false,
714
+ "unlocked_by": null,
715
+ "difficulty": 6,
523
716
  "topics": [
524
717
  "Strings",
525
718
  "Transforming"
526
719
  ]
527
720
  },
528
721
  {
529
- "difficulty": 6,
722
+ "uuid": "a7074b04-3ac5-4437-817e-2dc31d9d8ae0",
530
723
  "slug": "transpose",
724
+ "core": false,
725
+ "unlocked_by": null,
726
+ "difficulty": 6,
531
727
  "topics": [
532
728
  "Strings",
533
729
  "Transforming"
534
730
  ]
535
731
  },
536
732
  {
537
- "difficulty": 7,
733
+ "uuid": "b3924cce-02f7-4962-85a5-e67d8b1ac1fa",
538
734
  "slug": "bracket-push",
735
+ "core": false,
736
+ "unlocked_by": null,
737
+ "difficulty": 7,
539
738
  "topics": [
540
739
  "Parsing",
541
740
  "Strings"
542
741
  ]
543
742
  },
544
743
  {
545
- "difficulty": 7,
744
+ "uuid": "ca6d49c7-e850-4e81-9540-582a1353f604",
546
745
  "slug": "minesweeper",
746
+ "core": false,
747
+ "unlocked_by": null,
748
+ "difficulty": 7,
547
749
  "topics": [
548
750
  "Parsing",
549
751
  "Transforming"
550
752
  ]
551
753
  },
552
754
  {
553
- "difficulty": 7,
755
+ "uuid": "68d71c7f-5259-4030-821f-8449a142b677",
554
756
  "slug": "dominoes",
757
+ "core": false,
758
+ "unlocked_by": null,
759
+ "difficulty": 7,
555
760
  "topics": [
556
761
  "Lists",
557
762
  "Tuples"
558
763
  ]
559
764
  },
560
765
  {
561
- "difficulty": 7,
766
+ "uuid": "04b9825b-0ae2-4ee4-a444-12573f5d5c66",
562
767
  "slug": "wordy",
768
+ "core": false,
769
+ "unlocked_by": null,
770
+ "difficulty": 7,
563
771
  "topics": [
564
772
  "Parsing",
565
773
  "Strings",
@@ -567,22 +775,39 @@
567
775
  ]
568
776
  },
569
777
  {
570
- "difficulty": 8,
778
+ "uuid": "ffd130c2-f816-474c-a989-dc5814e31ea6",
571
779
  "slug": "poker",
780
+ "core": false,
781
+ "unlocked_by": null,
782
+ "difficulty": 8,
572
783
  "topics": [
573
784
  "Discriminated unions",
574
785
  "Parsing",
575
786
  "Sorting",
576
787
  "Games"
577
788
  ]
789
+ },
790
+ {
791
+ "uuid": "0930d019-2ccb-48f9-9ee7-467b683d9901",
792
+ "slug": "binary",
793
+ "deprecated": true
794
+ },
795
+ {
796
+ "uuid": "8b376ef9-ad94-4623-8d0f-e2d7bb6c364a",
797
+ "slug": "trinary",
798
+ "deprecated": true
799
+ },
800
+ {
801
+ "uuid": "128bcbc1-18b3-45e7-9590-c71d8f57c5c1",
802
+ "slug": "octal",
803
+ "deprecated": true
804
+ },
805
+ {
806
+ "uuid": "3a9f0e4d-a569-40ea-adb8-ded8d240c949",
807
+ "slug": "hexadecimal",
808
+ "deprecated": true
578
809
  }
579
810
  ],
580
- "deprecated": [
581
- "binary",
582
- "trinary",
583
- "octal",
584
- "hexadecimal"
585
- ],
586
811
  "foregone": [
587
812
 
588
813
  ]