trackler 2.2.1.166 → 2.2.1.167

Sign up to get free protection for your applications and to get access to all the features.
Files changed (382) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/cfml/docs/RESOURCES.md +1 -1
  4. data/tracks/clojure/config/maintainers.json +21 -21
  5. data/tracks/clojure/config.json +305 -305
  6. data/tracks/clojure/exercises/accumulate/README.md +0 -3
  7. data/tracks/clojure/exercises/accumulate/src/accumulate.clj +5 -0
  8. data/tracks/clojure/exercises/acronym/README.md +0 -1
  9. data/tracks/clojure/exercises/all-your-base/README.md +1 -1
  10. data/tracks/clojure/exercises/allergies/README.md +0 -1
  11. data/tracks/clojure/exercises/armstrong-numbers/README.md +2 -3
  12. data/tracks/clojure/exercises/armstrong-numbers/src/armstrong_numbers.clj +3 -1
  13. data/tracks/clojure/exercises/atbash-cipher/README.md +2 -1
  14. data/tracks/clojure/exercises/beer-song/README.md +2 -2
  15. data/tracks/clojure/exercises/binary/README.md +2 -0
  16. data/tracks/clojure/exercises/bracket-push/README.md +3 -2
  17. data/tracks/clojure/exercises/change/README.md +1 -1
  18. data/tracks/clojure/exercises/collatz-conjecture/README.md +3 -4
  19. data/tracks/clojure/exercises/collatz-conjecture/src/collatz_conjecture.clj +3 -1
  20. data/tracks/clojure/exercises/complex-numbers/README.md +3 -2
  21. data/tracks/clojure/exercises/complex-numbers/src/complex_numbers.clj +25 -8
  22. data/tracks/clojure/exercises/crypto-square/README.md +31 -26
  23. data/tracks/clojure/exercises/diamond/README.md +8 -0
  24. data/tracks/clojure/exercises/dominoes/README.md +2 -0
  25. data/tracks/clojure/exercises/dominoes/src/dominoes.clj +3 -1
  26. data/tracks/clojure/exercises/etl/README.md +3 -1
  27. data/tracks/clojure/exercises/flatten-array/README.md +1 -2
  28. data/tracks/clojure/exercises/grade-school/README.md +0 -1
  29. data/tracks/clojure/exercises/grains/README.md +0 -1
  30. data/tracks/clojure/exercises/hamming/README.md +4 -3
  31. data/tracks/clojure/exercises/isbn-verifier/README.md +28 -24
  32. data/tracks/clojure/exercises/isbn-verifier/src/isbn_verifier.clj +3 -1
  33. data/tracks/clojure/exercises/isbn-verifier/test/isbn_verifier_test.clj +3 -0
  34. data/tracks/clojure/exercises/isogram/README.md +2 -1
  35. data/tracks/clojure/exercises/kindergarten-garden/README.md +13 -13
  36. data/tracks/clojure/exercises/largest-series-product/src/largest_series_product.clj +5 -0
  37. data/tracks/clojure/exercises/leap/README.md +1 -1
  38. data/tracks/clojure/exercises/leap/src/leap.clj +5 -0
  39. data/tracks/clojure/exercises/luhn/README.md +7 -7
  40. data/tracks/clojure/exercises/luhn/src/luhn.clj +5 -0
  41. data/tracks/clojure/exercises/meetup/README.md +16 -13
  42. data/tracks/clojure/exercises/meetup/src/meetup.clj +5 -0
  43. data/tracks/clojure/exercises/nth-prime/src/nth_prime.clj +5 -0
  44. data/tracks/clojure/exercises/nucleotide-count/README.md +8 -22
  45. data/tracks/clojure/exercises/nucleotide-count/src/nucleotide_count.clj +9 -0
  46. data/tracks/clojure/exercises/octal/README.md +6 -2
  47. data/tracks/clojure/exercises/octal/src/octal.clj +5 -0
  48. data/tracks/clojure/exercises/pangram/README.md +1 -1
  49. data/tracks/clojure/exercises/pangram/src/pangram.clj +5 -0
  50. data/tracks/clojure/exercises/pascals-triangle/README.md +2 -2
  51. data/tracks/clojure/exercises/pascals-triangle/src/pascals_triangle.clj +7 -0
  52. data/tracks/clojure/exercises/perfect-numbers/README.md +2 -2
  53. data/tracks/clojure/exercises/perfect-numbers/src/perfect_numbers.clj +5 -0
  54. data/tracks/clojure/exercises/phone-number/README.md +4 -3
  55. data/tracks/clojure/exercises/phone-number/src/phone_number.clj +13 -0
  56. data/tracks/clojure/exercises/pig-latin/README.md +4 -4
  57. data/tracks/clojure/exercises/pig-latin/src/pig_latin.clj +5 -0
  58. data/tracks/clojure/exercises/poker/README.md +3 -2
  59. data/tracks/clojure/exercises/poker/src/poker.clj +3 -1
  60. data/tracks/clojure/exercises/pov/README.md +3 -5
  61. data/tracks/clojure/exercises/pov/src/pov.clj +9 -0
  62. data/tracks/clojure/exercises/prime-factors/src/prime_factors.clj +5 -0
  63. data/tracks/clojure/exercises/protein-translation/README.md +10 -2
  64. data/tracks/clojure/exercises/protein-translation/src/protein_translation.clj +9 -0
  65. data/tracks/clojure/exercises/proverb/README.md +8 -0
  66. data/tracks/clojure/exercises/queen-attack/README.md +1 -1
  67. data/tracks/clojure/exercises/queen-attack/src/queen_attack.clj +9 -0
  68. data/tracks/clojure/exercises/raindrops/src/raindrops.clj +5 -0
  69. data/tracks/clojure/exercises/reverse-string/README.md +2 -3
  70. data/tracks/clojure/exercises/rna-transcription/README.md +2 -2
  71. data/tracks/clojure/exercises/robot-name/src/robot_name.clj +13 -0
  72. data/tracks/clojure/exercises/robot-simulator/src/robot_simulator.clj +17 -0
  73. data/tracks/clojure/exercises/roman-numerals/README.md +1 -1
  74. data/tracks/clojure/exercises/roman-numerals/src/roman_numerals.clj +5 -0
  75. data/tracks/clojure/exercises/rotational-cipher/README.md +2 -1
  76. data/tracks/clojure/exercises/rotational-cipher/src/rotational_cipher.clj +5 -0
  77. data/tracks/clojure/exercises/run-length-encoding/README.md +0 -6
  78. data/tracks/clojure/exercises/say/README.md +2 -4
  79. data/tracks/clojure/exercises/scrabble-score/README.md +3 -1
  80. data/tracks/clojure/exercises/scrabble-score/src/scrabble_score.clj +9 -0
  81. data/tracks/clojure/exercises/secret-handshake/README.md +2 -2
  82. data/tracks/clojure/exercises/secret-handshake/src/secret_handshake.clj +5 -0
  83. data/tracks/clojure/exercises/series/README.md +7 -8
  84. data/tracks/clojure/exercises/series/src/series.clj +3 -1
  85. data/tracks/clojure/exercises/sieve/README.md +5 -3
  86. data/tracks/clojure/exercises/sieve/src/sieve.clj +5 -0
  87. data/tracks/clojure/exercises/space-age/README.md +1 -1
  88. data/tracks/clojure/exercises/space-age/src/space_age.clj +33 -0
  89. data/tracks/clojure/exercises/spiral-matrix/README.md +6 -8
  90. data/tracks/clojure/exercises/spiral-matrix/src/spiral_matrix.clj +3 -1
  91. data/tracks/clojure/exercises/strain/src/strain.clj +9 -0
  92. data/tracks/clojure/exercises/sublist/src/sublist.clj +5 -0
  93. data/tracks/clojure/exercises/sum-of-multiples/README.md +3 -6
  94. data/tracks/clojure/exercises/sum-of-multiples/src/sum_of_multiples.clj +5 -0
  95. data/tracks/clojure/exercises/triangle/README.md +10 -7
  96. data/tracks/clojure/exercises/triangle/src/triangle.clj +5 -0
  97. data/tracks/clojure/exercises/trinary/README.md +1 -1
  98. data/tracks/clojure/exercises/trinary/src/trinary.clj +5 -0
  99. data/tracks/clojure/exercises/two-fer/README.md +2 -2
  100. data/tracks/clojure/exercises/word-count/README.md +1 -2
  101. data/tracks/clojure/exercises/wordy/README.md +0 -5
  102. data/tracks/clojure/exercises/wordy/src/wordy.clj +5 -0
  103. data/tracks/csharp/config.json +1 -0
  104. data/tracks/csharp/exercises/accumulate/Accumulate.csproj +1 -1
  105. data/tracks/csharp/exercises/acronym/Acronym.csproj +1 -1
  106. data/tracks/csharp/exercises/all-your-base/AllYourBase.csproj +1 -1
  107. data/tracks/csharp/exercises/allergies/Allergies.csproj +1 -1
  108. data/tracks/csharp/exercises/alphametics/Alphametics.csproj +2 -2
  109. data/tracks/csharp/exercises/anagram/Anagram.csproj +1 -1
  110. data/tracks/csharp/exercises/armstrong-numbers/ArmstrongNumbers.csproj +1 -1
  111. data/tracks/csharp/exercises/atbash-cipher/AtbashCipher.csproj +1 -1
  112. data/tracks/csharp/exercises/bank-account/BankAccount.csproj +1 -1
  113. data/tracks/csharp/exercises/beer-song/BeerSong.csproj +1 -1
  114. data/tracks/csharp/exercises/binary/Binary.csproj +1 -1
  115. data/tracks/csharp/exercises/binary-search/BinarySearch.csproj +1 -1
  116. data/tracks/csharp/exercises/binary-search-tree/BinarySearchTree.csproj +1 -1
  117. data/tracks/csharp/exercises/bob/Bob.csproj +1 -1
  118. data/tracks/csharp/exercises/book-store/BookStore.csproj +1 -1
  119. data/tracks/csharp/exercises/bowling/Bowling.csproj +1 -1
  120. data/tracks/csharp/exercises/bracket-push/BracketPush.csproj +1 -1
  121. data/tracks/csharp/exercises/change/Change.csproj +1 -1
  122. data/tracks/csharp/exercises/circular-buffer/CircularBuffer.csproj +1 -1
  123. data/tracks/csharp/exercises/clock/Clock.csproj +1 -1
  124. data/tracks/csharp/exercises/collatz-conjecture/CollatzConjecture.csproj +1 -1
  125. data/tracks/csharp/exercises/complex-numbers/ComplexNumbers.csproj +1 -1
  126. data/tracks/csharp/exercises/connect/Connect.csproj +1 -1
  127. data/tracks/csharp/exercises/crypto-square/CryptoSquare.csproj +1 -1
  128. data/tracks/csharp/exercises/custom-set/CustomSet.csproj +1 -1
  129. data/tracks/csharp/exercises/diamond/Diamond.csproj +3 -3
  130. data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquares.csproj +1 -1
  131. data/tracks/csharp/exercises/diffie-hellman/DiffieHellman.csproj +1 -1
  132. data/tracks/csharp/exercises/dominoes/Dominoes.csproj +1 -1
  133. data/tracks/csharp/exercises/dot-dsl/DotDsl.csproj +1 -1
  134. data/tracks/csharp/exercises/error-handling/ErrorHandling.csproj +1 -1
  135. data/tracks/csharp/exercises/etl/Etl.csproj +1 -1
  136. data/tracks/csharp/exercises/flatten-array/FlattenArray.csproj +1 -1
  137. data/tracks/csharp/exercises/food-chain/FoodChain.csproj +1 -1
  138. data/tracks/csharp/exercises/forth/Forth.csproj +2 -2
  139. data/tracks/csharp/exercises/gigasecond/Gigasecond.csproj +1 -1
  140. data/tracks/csharp/exercises/go-counting/GoCounting.csproj +1 -1
  141. data/tracks/csharp/exercises/grade-school/GradeSchool.csproj +1 -1
  142. data/tracks/csharp/exercises/grains/Grains.csproj +1 -1
  143. data/tracks/csharp/exercises/grep/Grep.csproj +1 -1
  144. data/tracks/csharp/exercises/hamming/Hamming.csproj +1 -1
  145. data/tracks/csharp/exercises/hangman/Hangman.csproj +1 -1
  146. data/tracks/csharp/exercises/hello-world/HelloWorld.csproj +1 -1
  147. data/tracks/csharp/exercises/hexadecimal/Hexadecimal.csproj +1 -1
  148. data/tracks/csharp/exercises/house/House.csproj +1 -1
  149. data/tracks/csharp/exercises/isbn-verifier/IsbnVerifier.csproj +1 -1
  150. data/tracks/csharp/exercises/isogram/Isogram.csproj +1 -1
  151. data/tracks/csharp/exercises/kindergarten-garden/KindergartenGarden.csproj +1 -1
  152. data/tracks/csharp/exercises/largest-series-product/LargestSeriesProduct.csproj +1 -1
  153. data/tracks/csharp/exercises/leap/Leap.csproj +1 -1
  154. data/tracks/csharp/exercises/ledger/Ledger.csproj +1 -1
  155. data/tracks/csharp/exercises/linked-list/LinkedList.csproj +1 -1
  156. data/tracks/csharp/exercises/list-ops/ListOps.csproj +1 -1
  157. data/tracks/csharp/exercises/luhn/Luhn.csproj +1 -1
  158. data/tracks/csharp/exercises/markdown/Markdown.csproj +1 -1
  159. data/tracks/csharp/exercises/matrix/Matrix.csproj +1 -1
  160. data/tracks/csharp/exercises/meetup/Meetup.csproj +1 -1
  161. data/tracks/csharp/exercises/minesweeper/Minesweeper.csproj +1 -1
  162. data/tracks/csharp/exercises/nth-prime/NthPrime.csproj +1 -1
  163. data/tracks/csharp/exercises/nucleotide-count/NucleotideCount.csproj +1 -1
  164. data/tracks/csharp/exercises/ocr-numbers/OcrNumbers.csproj +1 -1
  165. data/tracks/csharp/exercises/octal/Octal.csproj +1 -1
  166. data/tracks/csharp/exercises/palindrome-products/PalindromeProducts.csproj +1 -1
  167. data/tracks/csharp/exercises/pangram/Pangram.csproj +1 -1
  168. data/tracks/csharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.csproj +1 -1
  169. data/tracks/csharp/exercises/pascals-triangle/PascalsTriangle.csproj +1 -1
  170. data/tracks/csharp/exercises/perfect-numbers/PerfectNumbers.csproj +1 -1
  171. data/tracks/csharp/exercises/phone-number/PhoneNumber.csproj +1 -1
  172. data/tracks/csharp/exercises/pig-latin/PigLatin.csproj +1 -1
  173. data/tracks/csharp/exercises/poker/Poker.csproj +1 -1
  174. data/tracks/csharp/exercises/pov/Pov.csproj +1 -1
  175. data/tracks/csharp/exercises/prime-factors/PrimeFactors.csproj +1 -1
  176. data/tracks/csharp/exercises/protein-translation/ProteinTranslation.csproj +1 -1
  177. data/tracks/csharp/exercises/proverb/Proverb.csproj +1 -1
  178. data/tracks/csharp/exercises/pythagorean-triplet/PythagoreanTriplet.csproj +1 -1
  179. data/tracks/csharp/exercises/queen-attack/QueenAttack.csproj +1 -1
  180. data/tracks/csharp/exercises/rail-fence-cipher/RailFenceCipher.csproj +1 -1
  181. data/tracks/csharp/exercises/raindrops/Raindrops.csproj +1 -1
  182. data/tracks/csharp/exercises/rational-numbers/RationalNumbers.csproj +1 -1
  183. data/tracks/csharp/exercises/react/React.csproj +1 -1
  184. data/tracks/csharp/exercises/rectangles/Rectangles.csproj +1 -1
  185. data/tracks/csharp/exercises/reverse-string/ReverseString.csproj +1 -1
  186. data/tracks/csharp/exercises/rna-transcription/RnaTranscription.csproj +1 -1
  187. data/tracks/csharp/exercises/robot-name/RobotName.csproj +1 -1
  188. data/tracks/csharp/exercises/robot-simulator/RobotSimulator.csproj +1 -1
  189. data/tracks/csharp/exercises/roman-numerals/RomanNumerals.csproj +1 -1
  190. data/tracks/csharp/exercises/rotational-cipher/RotationalCipher.csproj +1 -1
  191. data/tracks/csharp/exercises/run-length-encoding/RunLengthEncoding.csproj +1 -1
  192. data/tracks/csharp/exercises/saddle-points/SaddlePoints.csproj +1 -1
  193. data/tracks/csharp/exercises/say/Say.csproj +1 -1
  194. data/tracks/csharp/exercises/scale-generator/ScaleGenerator.csproj +1 -1
  195. data/tracks/csharp/exercises/scrabble-score/ScrabbleScore.csproj +1 -1
  196. data/tracks/csharp/exercises/secret-handshake/SecretHandshake.csproj +1 -1
  197. data/tracks/csharp/exercises/series/Series.csproj +1 -1
  198. data/tracks/csharp/exercises/sgf-parsing/SgfParsing.csproj +2 -2
  199. data/tracks/csharp/exercises/sieve/Sieve.csproj +1 -1
  200. data/tracks/csharp/exercises/simple-cipher/SimpleCipher.csproj +1 -1
  201. data/tracks/csharp/exercises/simple-linked-list/SimpleLinkedList.csproj +1 -1
  202. data/tracks/csharp/exercises/space-age/SpaceAge.csproj +1 -1
  203. data/tracks/csharp/exercises/spiral-matrix/SpiralMatrix.csproj +1 -1
  204. data/tracks/csharp/exercises/strain/Strain.csproj +1 -1
  205. data/tracks/csharp/exercises/sublist/Sublist.csproj +1 -1
  206. data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiples.csproj +1 -1
  207. data/tracks/csharp/exercises/tournament/Tournament.csproj +1 -1
  208. data/tracks/csharp/exercises/transpose/Transpose.csproj +1 -1
  209. data/tracks/csharp/exercises/tree-building/TreeBuilding.csproj +1 -1
  210. data/tracks/csharp/exercises/triangle/Triangle.csproj +1 -1
  211. data/tracks/csharp/exercises/trinary/Trinary.csproj +1 -1
  212. data/tracks/csharp/exercises/twelve-days/TwelveDays.csproj +1 -1
  213. data/tracks/csharp/exercises/two-bucket/TwoBucket.csproj +1 -1
  214. data/tracks/csharp/exercises/two-fer/TwoFer.csproj +1 -1
  215. data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantity.csproj +1 -1
  216. data/tracks/csharp/exercises/word-count/WordCount.csproj +1 -1
  217. data/tracks/csharp/exercises/word-search/WordSearch.csproj +1 -1
  218. data/tracks/csharp/exercises/wordy/Wordy.csproj +1 -1
  219. data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzle.csproj +1 -1
  220. data/tracks/csharp/exercises/zipper/Zipper.csproj +1 -1
  221. data/tracks/fsharp/config.json +1 -0
  222. data/tracks/fsharp/exercises/accumulate/Accumulate.fsproj +1 -1
  223. data/tracks/fsharp/exercises/acronym/Acronym.fsproj +1 -1
  224. data/tracks/fsharp/exercises/all-your-base/AllYourBase.fsproj +1 -1
  225. data/tracks/fsharp/exercises/allergies/Allergies.fsproj +1 -1
  226. data/tracks/fsharp/exercises/alphametics/Alphametics.fsproj +1 -1
  227. data/tracks/fsharp/exercises/anagram/Anagram.fsproj +1 -1
  228. data/tracks/fsharp/exercises/armstrong-numbers/ArmstrongNumbers.fsproj +1 -1
  229. data/tracks/fsharp/exercises/atbash-cipher/AtbashCipher.fsproj +1 -1
  230. data/tracks/fsharp/exercises/bank-account/BankAccount.fsproj +1 -1
  231. data/tracks/fsharp/exercises/beer-song/BeerSong.fsproj +1 -1
  232. data/tracks/fsharp/exercises/binary/Binary.fsproj +1 -1
  233. data/tracks/fsharp/exercises/binary-search/BinarySearch.fsproj +1 -1
  234. data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTree.fsproj +1 -1
  235. data/tracks/fsharp/exercises/bob/Bob.fsproj +1 -1
  236. data/tracks/fsharp/exercises/book-store/BookStore.fsproj +1 -1
  237. data/tracks/fsharp/exercises/bowling/Bowling.fsproj +1 -1
  238. data/tracks/fsharp/exercises/bracket-push/BracketPush.fsproj +1 -1
  239. data/tracks/fsharp/exercises/change/Change.fsproj +1 -1
  240. data/tracks/fsharp/exercises/circular-buffer/CircularBuffer.fsproj +1 -1
  241. data/tracks/fsharp/exercises/clock/Clock.fsproj +1 -1
  242. data/tracks/fsharp/exercises/collatz-conjecture/CollatzConjecture.fsproj +1 -1
  243. data/tracks/fsharp/exercises/complex-numbers/ComplexNumbers.fsproj +1 -1
  244. data/tracks/fsharp/exercises/connect/Connect.fsproj +1 -1
  245. data/tracks/fsharp/exercises/crypto-square/CryptoSquare.fsproj +1 -1
  246. data/tracks/fsharp/exercises/custom-set/CustomSet.fsproj +1 -1
  247. data/tracks/fsharp/exercises/diamond/Diamond.fsproj +1 -1
  248. data/tracks/fsharp/exercises/difference-of-squares/DifferenceOfSquares.fsproj +1 -1
  249. data/tracks/fsharp/exercises/diffie-hellman/DiffieHellman.fsproj +1 -1
  250. data/tracks/fsharp/exercises/dominoes/Dominoes.fsproj +1 -1
  251. data/tracks/fsharp/exercises/dot-dsl/DotDsl.fsproj +1 -1
  252. data/tracks/fsharp/exercises/error-handling/ErrorHandling.fsproj +1 -1
  253. data/tracks/fsharp/exercises/etl/Etl.fsproj +1 -1
  254. data/tracks/fsharp/exercises/food-chain/FoodChain.fsproj +1 -1
  255. data/tracks/fsharp/exercises/forth/Forth.fsproj +1 -1
  256. data/tracks/fsharp/exercises/gigasecond/Gigasecond.fsproj +1 -1
  257. data/tracks/fsharp/exercises/go-counting/GoCounting.fsproj +1 -1
  258. data/tracks/fsharp/exercises/grade-school/GradeSchool.fsproj +1 -1
  259. data/tracks/fsharp/exercises/grains/Grains.fsproj +1 -1
  260. data/tracks/fsharp/exercises/grep/Grep.fsproj +1 -1
  261. data/tracks/fsharp/exercises/hamming/Hamming.fsproj +1 -1
  262. data/tracks/fsharp/exercises/hangman/Hangman.fsproj +1 -1
  263. data/tracks/fsharp/exercises/hello-world/HelloWorld.fsproj +1 -1
  264. data/tracks/fsharp/exercises/hexadecimal/Hexadecimal.fsproj +1 -1
  265. data/tracks/fsharp/exercises/house/House.fsproj +1 -1
  266. data/tracks/fsharp/exercises/isbn-verifier/IsbnVerifier.fsproj +1 -1
  267. data/tracks/fsharp/exercises/isogram/Isogram.fsproj +1 -1
  268. data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGarden.fsproj +1 -1
  269. data/tracks/fsharp/exercises/largest-series-product/LargestSeriesProduct.fsproj +1 -1
  270. data/tracks/fsharp/exercises/leap/Leap.fsproj +1 -1
  271. data/tracks/fsharp/exercises/ledger/Ledger.fsproj +1 -1
  272. data/tracks/fsharp/exercises/lens-person/LensPerson.fsproj +1 -1
  273. data/tracks/fsharp/exercises/linked-list/LinkedList.fsproj +1 -1
  274. data/tracks/fsharp/exercises/list-ops/ListOps.fsproj +1 -1
  275. data/tracks/fsharp/exercises/luhn/Luhn.fsproj +1 -1
  276. data/tracks/fsharp/exercises/markdown/Markdown.fsproj +1 -1
  277. data/tracks/fsharp/exercises/matrix/Matrix.fsproj +1 -1
  278. data/tracks/fsharp/exercises/meetup/Meetup.fsproj +1 -1
  279. data/tracks/fsharp/exercises/minesweeper/Minesweeper.fsproj +1 -1
  280. data/tracks/fsharp/exercises/nth-prime/NthPrime.fsproj +1 -1
  281. data/tracks/fsharp/exercises/nucleotide-count/NucleotideCount.fsproj +1 -1
  282. data/tracks/fsharp/exercises/ocr-numbers/OcrNumbers.fsproj +1 -1
  283. data/tracks/fsharp/exercises/octal/Octal.fsproj +1 -1
  284. data/tracks/fsharp/exercises/palindrome-products/PalindromeProducts.fsproj +1 -1
  285. data/tracks/fsharp/exercises/pangram/Pangram.fsproj +1 -1
  286. data/tracks/fsharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.fsproj +1 -1
  287. data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangle.fsproj +1 -1
  288. data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbers.fsproj +1 -1
  289. data/tracks/fsharp/exercises/phone-number/PhoneNumber.fsproj +1 -1
  290. data/tracks/fsharp/exercises/pig-latin/PigLatin.fsproj +1 -1
  291. data/tracks/fsharp/exercises/poker/Poker.fsproj +1 -1
  292. data/tracks/fsharp/exercises/pov/Pov.fsproj +1 -1
  293. data/tracks/fsharp/exercises/prime-factors/PrimeFactors.fsproj +1 -1
  294. data/tracks/fsharp/exercises/protein-translation/ProteinTranslation.fsproj +1 -1
  295. data/tracks/fsharp/exercises/proverb/Proverb.fsproj +1 -1
  296. data/tracks/fsharp/exercises/pythagorean-triplet/PythagoreanTriplet.fsproj +1 -1
  297. data/tracks/fsharp/exercises/queen-attack/QueenAttack.fsproj +1 -1
  298. data/tracks/fsharp/exercises/rail-fence-cipher/RailFenceCipher.fsproj +1 -1
  299. data/tracks/fsharp/exercises/raindrops/Raindrops.fsproj +1 -1
  300. data/tracks/fsharp/exercises/rational-numbers/RationalNumbers.fsproj +1 -1
  301. data/tracks/fsharp/exercises/react/React.fsproj +1 -1
  302. data/tracks/fsharp/exercises/rectangles/Rectangles.fsproj +1 -1
  303. data/tracks/fsharp/exercises/reverse-string/ReverseString.fsproj +1 -1
  304. data/tracks/fsharp/exercises/rna-transcription/RnaTranscription.fsproj +1 -1
  305. data/tracks/fsharp/exercises/robot-name/RobotName.fsproj +1 -1
  306. data/tracks/fsharp/exercises/robot-simulator/RobotSimulator.fsproj +1 -1
  307. data/tracks/fsharp/exercises/roman-numerals/RomanNumerals.fsproj +1 -1
  308. data/tracks/fsharp/exercises/rotational-cipher/RotationalCipher.fsproj +1 -1
  309. data/tracks/fsharp/exercises/run-length-encoding/RunLengthEncoding.fsproj +1 -1
  310. data/tracks/fsharp/exercises/saddle-points/SaddlePoints.fsproj +1 -1
  311. data/tracks/fsharp/exercises/say/Say.fsproj +1 -1
  312. data/tracks/fsharp/exercises/scale-generator/ScaleGenerator.fsproj +1 -1
  313. data/tracks/fsharp/exercises/scrabble-score/ScrabbleScore.fsproj +1 -1
  314. data/tracks/fsharp/exercises/secret-handshake/SecretHandshake.fsproj +1 -1
  315. data/tracks/fsharp/exercises/series/Series.fsproj +1 -1
  316. data/tracks/fsharp/exercises/sgf-parsing/SgfParsing.fsproj +1 -1
  317. data/tracks/fsharp/exercises/sieve/Sieve.fsproj +1 -1
  318. data/tracks/fsharp/exercises/simple-cipher/Example.fs +31 -21
  319. data/tracks/fsharp/exercises/simple-cipher/SimpleCipher.fs +8 -4
  320. data/tracks/fsharp/exercises/simple-cipher/SimpleCipher.fsproj +1 -1
  321. data/tracks/fsharp/exercises/simple-cipher/SimpleCipherTest.fs +51 -73
  322. data/tracks/fsharp/exercises/simple-linked-list/SimpleLinkedList.fsproj +1 -1
  323. data/tracks/fsharp/exercises/space-age/SpaceAge.fsproj +1 -1
  324. data/tracks/fsharp/exercises/spiral-matrix/SpiralMatrix.fsproj +1 -1
  325. data/tracks/fsharp/exercises/strain/Strain.fsproj +1 -1
  326. data/tracks/fsharp/exercises/sublist/Sublist.fsproj +1 -1
  327. data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiples.fsproj +1 -1
  328. data/tracks/fsharp/exercises/tournament/Tournament.fsproj +1 -1
  329. data/tracks/fsharp/exercises/transpose/Transpose.fsproj +1 -1
  330. data/tracks/fsharp/exercises/tree-building/TreeBuilding.fsproj +1 -1
  331. data/tracks/fsharp/exercises/triangle/Triangle.fsproj +1 -1
  332. data/tracks/fsharp/exercises/trinary/Trinary.fsproj +1 -1
  333. data/tracks/fsharp/exercises/twelve-days/TwelveDays.fsproj +1 -1
  334. data/tracks/fsharp/exercises/two-bucket/TwoBucket.fsproj +1 -1
  335. data/tracks/fsharp/exercises/two-fer/TwoFer.fsproj +1 -1
  336. data/tracks/fsharp/exercises/variable-length-quantity/VariableLengthQuantity.fsproj +1 -1
  337. data/tracks/fsharp/exercises/word-count/WordCount.fsproj +1 -1
  338. data/tracks/fsharp/exercises/word-search/WordSearch.fsproj +1 -1
  339. data/tracks/fsharp/exercises/wordy/Wordy.fsproj +1 -1
  340. data/tracks/fsharp/exercises/yacht/Yacht.fsproj +1 -1
  341. data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzle.fsproj +1 -1
  342. data/tracks/fsharp/exercises/zipper/Zipper.fsproj +1 -1
  343. data/tracks/fsharp/generators/Generators.fs +53 -2
  344. data/tracks/fsharp/generators/Generators.fsproj +3 -3
  345. data/tracks/kotlin/exercises/atbash-cipher/.meta/version +1 -1
  346. data/tracks/kotlin/exercises/collatz-conjecture/.meta/version +1 -1
  347. data/tracks/kotlin/exercises/diamond/.meta/version +1 -1
  348. data/tracks/kotlin/exercises/grains/.meta/version +1 -1
  349. data/tracks/kotlin/exercises/largest-series-product/.meta/version +1 -1
  350. data/tracks/kotlin/exercises/nth-prime/.meta/version +1 -1
  351. data/tracks/kotlin/exercises/saddle-points/.meta/version +1 -1
  352. data/tracks/kotlin/exercises/sieve/.meta/version +1 -1
  353. data/tracks/kotlin/exercises/triangle/.meta/version +1 -1
  354. data/tracks/lua/config.json +1 -1
  355. data/tracks/ocaml/config/maintainers.json +11 -11
  356. data/tracks/ocaml/config.json +179 -175
  357. data/tracks/ocaml/docs/ABOUT.md +4 -8
  358. data/tracks/reasonml/.gitignore +2 -0
  359. data/tracks/reasonml/config.json +53 -6
  360. data/tracks/reasonml/docs/LEARNING.md +2 -0
  361. data/tracks/reasonml/docs/RESOURCES.md +6 -4
  362. data/tracks/reasonml/exercises/change/README.md +41 -0
  363. data/tracks/reasonml/exercises/change/__tests__/Change_test.re +39 -0
  364. data/tracks/reasonml/exercises/change/bsconfig.json +30 -0
  365. data/tracks/reasonml/exercises/change/package.json +20 -0
  366. data/tracks/reasonml/exercises/change/src/Example.re +37 -0
  367. data/tracks/reasonml/exercises/leap/__tests__/Leap_test.re +5 -4
  368. data/tracks/reasonml/exercises/leap/src/Example.re +1 -1
  369. data/tracks/reasonml/exercises/raindrops/README.md +33 -0
  370. data/tracks/reasonml/exercises/raindrops/__tests__/Raindrops_test.re +63 -0
  371. data/tracks/reasonml/exercises/raindrops/bsconfig.json +30 -0
  372. data/tracks/reasonml/exercises/raindrops/package-lock.json +5148 -0
  373. data/tracks/reasonml/exercises/raindrops/package.json +20 -0
  374. data/tracks/reasonml/exercises/raindrops/src/Example.re +18 -0
  375. data/tracks/reasonml/exercises/word-count/README.md +24 -0
  376. data/tracks/reasonml/exercises/word-count/__tests__/WordCount_test.re +78 -0
  377. data/tracks/reasonml/exercises/word-count/bsconfig.json +30 -0
  378. data/tracks/reasonml/exercises/word-count/package-lock.json +5853 -0
  379. data/tracks/reasonml/exercises/word-count/package.json +18 -0
  380. data/tracks/reasonml/exercises/word-count/src/Example.re +20 -0
  381. metadata +51 -3
  382. data/tracks/clojure/exercises/pov/.gitignore +0 -3
@@ -1,442 +1,446 @@
1
1
  {
2
+ "language": "OCaml",
2
3
  "active": true,
4
+ "blurb": "",
3
5
  "exercises": [
4
6
  {
7
+ "slug": "hello-world",
8
+ "uuid": "cda3b090-ae52-476b-a782-9cbf43953cf0",
5
9
  "core": false,
10
+ "unlocked_by": null,
6
11
  "difficulty": 1,
7
- "slug": "hello-world",
8
12
  "topics": [
9
13
  "setting_up_ocaml_dev_environment",
10
14
  "strings"
11
- ],
12
- "unlocked_by": null,
13
- "uuid": "cda3b090-ae52-476b-a782-9cbf43953cf0"
15
+ ]
14
16
  },
15
17
  {
18
+ "slug": "leap",
19
+ "uuid": "ea5ca675-e010-470b-8030-d4f84880d799",
16
20
  "core": false,
21
+ "unlocked_by": null,
17
22
  "difficulty": 1,
18
- "slug": "leap",
19
23
  "topics": [
20
24
  "booleans",
21
25
  "integers"
22
- ],
23
- "unlocked_by": null,
24
- "uuid": "ea5ca675-e010-470b-8030-d4f84880d799"
26
+ ]
25
27
  },
26
28
  {
29
+ "slug": "hamming",
30
+ "uuid": "bff47b0f-4555-40b7-b422-64eaa37cb2f6",
27
31
  "core": false,
32
+ "unlocked_by": null,
28
33
  "difficulty": 2,
29
- "slug": "hamming",
30
34
  "topics": [
31
35
  "iterating_over_two_lists_at_once"
32
- ],
33
- "unlocked_by": null,
34
- "uuid": "bff47b0f-4555-40b7-b422-64eaa37cb2f6"
36
+ ]
35
37
  },
36
38
  {
37
- "core": false,
38
- "difficulty": 2,
39
39
  "slug": "raindrops",
40
- "topics": null,
40
+ "uuid": "dd066b62-c63e-467c-8dfb-435bcc81d532",
41
+ "core": false,
41
42
  "unlocked_by": null,
42
- "uuid": "dd066b62-c63e-467c-8dfb-435bcc81d532"
43
+ "difficulty": 2,
44
+ "topics": null
43
45
  },
44
46
  {
47
+ "slug": "difference-of-squares",
48
+ "uuid": "7fbd4282-9e69-460d-a208-dfafb1850da0",
45
49
  "core": false,
50
+ "unlocked_by": null,
46
51
  "difficulty": 2,
47
- "slug": "difference-of-squares",
48
52
  "topics": [
49
53
  "mathematics"
50
- ],
51
- "unlocked_by": null,
52
- "uuid": "7fbd4282-9e69-460d-a208-dfafb1850da0"
54
+ ]
53
55
  },
54
56
  {
57
+ "slug": "rna-transcription",
58
+ "uuid": "bf9a0fe0-99b2-4a95-8d75-fc02d0c8433c",
55
59
  "core": false,
60
+ "unlocked_by": null,
56
61
  "difficulty": 2,
57
- "slug": "rna-transcription",
58
62
  "topics": [
59
63
  "transforming"
60
- ],
61
- "unlocked_by": null,
62
- "uuid": "bf9a0fe0-99b2-4a95-8d75-fc02d0c8433c"
64
+ ]
63
65
  },
64
66
  {
67
+ "slug": "nucleotide-count",
68
+ "uuid": "0d7a23a9-31a1-4d52-afd6-887d0fc898e2",
65
69
  "core": false,
70
+ "unlocked_by": null,
66
71
  "difficulty": 2,
67
- "slug": "nucleotide-count",
68
72
  "topics": [
69
73
  "counting"
70
- ],
71
- "unlocked_by": null,
72
- "uuid": "0d7a23a9-31a1-4d52-afd6-887d0fc898e2"
74
+ ]
73
75
  },
74
76
  {
77
+ "slug": "etl",
78
+ "uuid": "be29288a-fcb6-4dce-acc3-be8d86e5454e",
75
79
  "core": false,
80
+ "unlocked_by": null,
76
81
  "difficulty": 3,
77
- "slug": "etl",
78
82
  "topics": [
79
83
  "transforming"
80
- ],
81
- "unlocked_by": null,
82
- "uuid": "be29288a-fcb6-4dce-acc3-be8d86e5454e"
84
+ ]
83
85
  },
84
86
  {
87
+ "slug": "grade-school",
88
+ "uuid": "870b1229-2f9a-4e23-bb6f-c579375ed701",
85
89
  "core": false,
90
+ "unlocked_by": null,
86
91
  "difficulty": 3,
87
- "slug": "grade-school",
88
92
  "topics": [
89
93
  "transforming"
90
- ],
91
- "unlocked_by": null,
92
- "uuid": "870b1229-2f9a-4e23-bb6f-c579375ed701"
94
+ ]
93
95
  },
94
96
  {
97
+ "slug": "bob",
98
+ "uuid": "9bcdf9a0-acf3-4437-b0f5-071bf0cf5e02",
95
99
  "core": false,
100
+ "unlocked_by": null,
96
101
  "difficulty": 3,
97
- "slug": "bob",
98
102
  "topics": [
99
103
  "strings"
100
- ],
101
- "unlocked_by": null,
102
- "uuid": "9bcdf9a0-acf3-4437-b0f5-071bf0cf5e02"
104
+ ]
103
105
  },
104
106
  {
107
+ "slug": "anagram",
108
+ "uuid": "7a3e7667-c7a2-4ba2-b448-599719f78ebc",
105
109
  "core": false,
110
+ "unlocked_by": null,
106
111
  "difficulty": 3,
107
- "slug": "anagram",
108
112
  "topics": [
109
113
  "strings"
110
- ],
111
- "unlocked_by": null,
112
- "uuid": "7a3e7667-c7a2-4ba2-b448-599719f78ebc"
114
+ ]
113
115
  },
114
116
  {
117
+ "slug": "space-age",
118
+ "uuid": "0621077c-b5af-4e3b-a60c-b6aaa2565224",
115
119
  "core": false,
120
+ "unlocked_by": null,
116
121
  "difficulty": 3,
117
- "slug": "space-age",
118
122
  "topics": [
119
123
  "arithmetic",
120
124
  "floats"
121
- ],
122
- "unlocked_by": null,
123
- "uuid": "0621077c-b5af-4e3b-a60c-b6aaa2565224"
125
+ ]
124
126
  },
125
127
  {
128
+ "slug": "triangle",
129
+ "uuid": "a43c28f4-8f5c-40f7-90cb-79689c810f95",
126
130
  "core": false,
131
+ "unlocked_by": null,
127
132
  "difficulty": 3,
128
- "slug": "triangle",
129
133
  "topics": [
130
134
  "mathematics"
131
- ],
132
- "unlocked_by": null,
133
- "uuid": "a43c28f4-8f5c-40f7-90cb-79689c810f95"
135
+ ]
134
136
  },
135
137
  {
138
+ "slug": "pangram",
139
+ "uuid": "ae5a4fac-84c4-4929-b37e-b0452f761bf8",
136
140
  "core": false,
141
+ "unlocked_by": null,
137
142
  "difficulty": 3,
138
- "slug": "pangram",
139
143
  "topics": [
140
144
  "strings"
141
- ],
142
- "unlocked_by": null,
143
- "uuid": "ae5a4fac-84c4-4929-b37e-b0452f761bf8"
145
+ ]
144
146
  },
145
147
  {
148
+ "slug": "acronym",
149
+ "uuid": "c4550644-e67a-4bf4-98dc-78fe45b90c53",
146
150
  "core": false,
151
+ "unlocked_by": null,
147
152
  "difficulty": 3,
148
- "slug": "acronym",
149
153
  "topics": [
150
154
  "strings"
151
- ],
152
- "unlocked_by": null,
153
- "uuid": "c4550644-e67a-4bf4-98dc-78fe45b90c53"
155
+ ]
154
156
  },
155
157
  {
158
+ "slug": "all-your-base",
159
+ "uuid": "63134efd-e383-4f00-9f97-80ae75585ca6",
156
160
  "core": false,
161
+ "unlocked_by": null,
157
162
  "difficulty": 4,
158
- "slug": "all-your-base",
159
163
  "topics": [
160
164
  "mathematics"
161
- ],
162
- "unlocked_by": null,
163
- "uuid": "63134efd-e383-4f00-9f97-80ae75585ca6"
165
+ ]
164
166
  },
165
167
  {
168
+ "slug": "bracket-push",
169
+ "uuid": "9f7b9da6-afff-4d2b-862e-df1b3a0a7cef",
166
170
  "core": false,
171
+ "unlocked_by": null,
167
172
  "difficulty": 4,
168
- "slug": "bracket-push",
169
173
  "topics": [
170
174
  "stacks"
171
- ],
172
- "unlocked_by": null,
173
- "uuid": "9f7b9da6-afff-4d2b-862e-df1b3a0a7cef"
175
+ ]
174
176
  },
175
177
  {
178
+ "slug": "luhn",
179
+ "uuid": "8d21e4be-5e9c-4c73-81c5-b4ee2517d9c7",
176
180
  "core": false,
181
+ "unlocked_by": null,
177
182
  "difficulty": 4,
178
- "slug": "luhn",
179
183
  "topics": [
180
184
  "arithmetic"
181
- ],
182
- "unlocked_by": null,
183
- "uuid": "8d21e4be-5e9c-4c73-81c5-b4ee2517d9c7"
185
+ ]
184
186
  },
185
187
  {
188
+ "slug": "binary-search",
189
+ "uuid": "de60cf70-153d-439e-96c6-8252057c5d82",
186
190
  "core": false,
191
+ "unlocked_by": null,
187
192
  "difficulty": 4,
188
- "slug": "binary-search",
189
193
  "topics": [
190
194
  "algorithms",
191
195
  "arrays",
192
196
  "search"
193
- ],
194
- "unlocked_by": null,
195
- "uuid": "de60cf70-153d-439e-96c6-8252057c5d82"
197
+ ]
196
198
  },
197
199
  {
200
+ "slug": "phone-number",
201
+ "uuid": "d9f93301-a8e8-4c90-bbff-e1ec65b435e5",
198
202
  "core": false,
203
+ "unlocked_by": null,
199
204
  "difficulty": 4,
200
- "slug": "phone-number",
201
205
  "topics": [
202
206
  "strings"
203
- ],
204
- "unlocked_by": null,
205
- "uuid": "d9f93301-a8e8-4c90-bbff-e1ec65b435e5"
207
+ ]
206
208
  },
207
209
  {
210
+ "slug": "word-count",
211
+ "uuid": "db90c208-b8ca-4c8c-8061-b9148c80abfe",
208
212
  "core": false,
213
+ "unlocked_by": null,
209
214
  "difficulty": 4,
210
- "slug": "word-count",
211
215
  "topics": [
212
216
  "counting",
213
217
  "strings"
214
- ],
215
- "unlocked_by": null,
216
- "uuid": "db90c208-b8ca-4c8c-8061-b9148c80abfe"
218
+ ]
217
219
  },
218
220
  {
221
+ "slug": "beer-song",
222
+ "uuid": "83c807b1-0aa4-4493-8665-6581c019a6f5",
219
223
  "core": false,
224
+ "unlocked_by": null,
220
225
  "difficulty": 4,
221
- "slug": "beer-song",
222
226
  "topics": [
223
227
  "strings"
224
- ],
225
- "unlocked_by": null,
226
- "uuid": "83c807b1-0aa4-4493-8665-6581c019a6f5"
228
+ ]
227
229
  },
228
230
  {
231
+ "slug": "run-length-encoding",
232
+ "uuid": "4281cefe-e4b4-46d4-b6bb-0086448c080f",
229
233
  "core": false,
234
+ "unlocked_by": null,
230
235
  "difficulty": 5,
231
- "slug": "run-length-encoding",
232
236
  "topics": [
233
237
  "algorithms",
234
238
  "transforming"
235
- ],
236
- "unlocked_by": null,
237
- "uuid": "4281cefe-e4b4-46d4-b6bb-0086448c080f"
239
+ ]
238
240
  },
239
241
  {
242
+ "slug": "roman-numerals",
243
+ "uuid": "8f7fcaad-c588-4495-9f9e-20611187a0a5",
240
244
  "core": false,
245
+ "unlocked_by": null,
241
246
  "difficulty": 5,
242
- "slug": "roman-numerals",
243
247
  "topics": [
244
248
  "strings"
245
- ],
246
- "unlocked_by": null,
247
- "uuid": "8f7fcaad-c588-4495-9f9e-20611187a0a5"
249
+ ]
248
250
  },
249
251
  {
252
+ "slug": "prime-factors",
253
+ "uuid": "67d4fa19-c387-47c4-9262-a6e63d5c0a19",
250
254
  "core": false,
255
+ "unlocked_by": null,
251
256
  "difficulty": 5,
252
- "slug": "prime-factors",
253
257
  "topics": [
254
258
  "algorithms",
255
259
  "mathematics"
256
- ],
257
- "unlocked_by": null,
258
- "uuid": "67d4fa19-c387-47c4-9262-a6e63d5c0a19"
260
+ ]
259
261
  },
260
262
  {
263
+ "slug": "say",
264
+ "uuid": "2efe0bf3-cb17-4135-ae95-d7b5b7b61f7f",
261
265
  "core": false,
266
+ "unlocked_by": null,
262
267
  "difficulty": 5,
263
- "slug": "say",
264
268
  "topics": [
265
269
  "strings"
266
- ],
267
- "unlocked_by": null,
268
- "uuid": "2efe0bf3-cb17-4135-ae95-d7b5b7b61f7f"
270
+ ]
269
271
  },
270
272
  {
273
+ "slug": "palindrome-products",
274
+ "uuid": "8398d903-8208-4807-b735-b4cbf6976f29",
271
275
  "core": false,
276
+ "unlocked_by": null,
272
277
  "difficulty": 6,
273
- "slug": "palindrome-products",
274
278
  "topics": [
275
279
  "arithmetic"
276
- ],
277
- "unlocked_by": null,
278
- "uuid": "8398d903-8208-4807-b735-b4cbf6976f29"
280
+ ]
279
281
  },
280
282
  {
283
+ "slug": "robot-name",
284
+ "uuid": "51f4aff9-6666-4097-a37e-e2e51fd8f286",
281
285
  "core": false,
286
+ "unlocked_by": null,
282
287
  "difficulty": 6,
283
- "slug": "robot-name",
284
288
  "topics": [
285
289
  "mutable_state",
286
290
  "randomness"
287
- ],
288
- "unlocked_by": null,
289
- "uuid": "51f4aff9-6666-4097-a37e-e2e51fd8f286"
291
+ ]
290
292
  },
291
293
  {
294
+ "slug": "change",
295
+ "uuid": "202e8a9a-7a5e-486f-883b-56be298ed665",
292
296
  "core": false,
297
+ "unlocked_by": null,
293
298
  "difficulty": 6,
294
- "slug": "change",
295
299
  "topics": [
296
300
  "algorithms",
297
301
  "dynamic_programming"
298
- ],
299
- "unlocked_by": null,
300
- "uuid": "202e8a9a-7a5e-486f-883b-56be298ed665"
302
+ ]
301
303
  },
302
304
  {
305
+ "slug": "rectangles",
306
+ "uuid": "1b491d7e-40db-4782-a8bb-7cb3746588f5",
303
307
  "core": false,
308
+ "unlocked_by": null,
304
309
  "difficulty": 6,
305
- "slug": "rectangles",
306
310
  "topics": [
307
- "search"
308
- ],
309
- "unlocked_by": null,
310
- "uuid": "1b491d7e-40db-4782-a8bb-7cb3746588f5"
311
+ "search"
312
+ ]
311
313
  },
312
314
  {
315
+ "slug": "list-ops",
316
+ "uuid": "ffde2a94-722a-4193-86b7-d2d591a7223d",
313
317
  "core": false,
318
+ "unlocked_by": null,
314
319
  "difficulty": 6,
315
- "slug": "list-ops",
316
320
  "topics": [
317
321
  "functional_programming"
318
- ],
319
- "unlocked_by": null,
320
- "uuid": "ffde2a94-722a-4193-86b7-d2d591a7223d"
322
+ ]
321
323
  },
322
324
  {
325
+ "slug": "atbash-cipher",
326
+ "uuid": "020aa7d8-9b4b-4348-9fea-9fbaece3ac66",
323
327
  "core": false,
328
+ "unlocked_by": null,
324
329
  "difficulty": 7,
325
- "slug": "atbash-cipher",
326
330
  "topics": [
327
331
  "transforming"
328
- ],
329
- "unlocked_by": null,
330
- "uuid": "020aa7d8-9b4b-4348-9fea-9fbaece3ac66"
332
+ ]
331
333
  },
332
334
  {
335
+ "slug": "minesweeper",
336
+ "uuid": "a0468f9b-55d1-45dd-9a2f-476aaf4d6c2e",
333
337
  "core": false,
338
+ "unlocked_by": null,
334
339
  "difficulty": 7,
335
- "slug": "minesweeper",
336
340
  "topics": [
337
341
  "arrays",
338
342
  "transforming"
339
- ],
340
- "unlocked_by": null,
341
- "uuid": "a0468f9b-55d1-45dd-9a2f-476aaf4d6c2e"
343
+ ]
342
344
  },
343
345
  {
346
+ "slug": "bowling",
347
+ "uuid": "638b24d2-5288-4fc2-a70e-a178974f030e",
344
348
  "core": false,
349
+ "unlocked_by": null,
345
350
  "difficulty": 7,
346
- "slug": "bowling",
347
351
  "topics": [
348
352
  "algorithms"
349
- ],
350
- "unlocked_by": null,
351
- "uuid": "638b24d2-5288-4fc2-a70e-a178974f030e"
353
+ ]
352
354
  },
353
355
  {
356
+ "slug": "dominoes",
357
+ "uuid": "791c17d4-09b5-4e11-a433-b45f0c1c752e",
354
358
  "core": false,
359
+ "unlocked_by": null,
355
360
  "difficulty": 7,
356
- "slug": "dominoes",
357
361
  "topics": [
358
362
  "algorithms",
359
363
  "search"
360
- ],
361
- "unlocked_by": null,
362
- "uuid": "791c17d4-09b5-4e11-a433-b45f0c1c752e"
364
+ ]
363
365
  },
364
366
  {
367
+ "slug": "custom-set",
368
+ "uuid": "0bc0bc18-c207-43d0-8b39-8e0e2e87aa72",
365
369
  "core": false,
370
+ "unlocked_by": null,
366
371
  "difficulty": 8,
367
- "slug": "custom-set",
368
372
  "topics": [
369
373
  "functional_programming"
370
- ],
371
- "unlocked_by": null,
372
- "uuid": "0bc0bc18-c207-43d0-8b39-8e0e2e87aa72"
374
+ ]
373
375
  },
374
376
  {
377
+ "slug": "connect",
378
+ "uuid": "6a1e1746-c23c-4225-ac8f-f1b31814d6c2",
375
379
  "core": false,
380
+ "unlocked_by": null,
376
381
  "difficulty": 8,
377
- "slug": "connect",
378
382
  "topics": [
379
383
  "search"
380
- ],
381
- "unlocked_by": null,
382
- "uuid": "6a1e1746-c23c-4225-ac8f-f1b31814d6c2"
384
+ ]
383
385
  },
384
386
  {
387
+ "slug": "meetup",
388
+ "uuid": "cd37ff33-d2c3-4420-9ad0-0121e2a04b61",
385
389
  "core": false,
390
+ "unlocked_by": null,
386
391
  "difficulty": 9,
387
- "slug": "meetup",
388
392
  "topics": [
389
393
  "dates"
390
- ],
391
- "unlocked_by": null,
392
- "uuid": "cd37ff33-d2c3-4420-9ad0-0121e2a04b61"
394
+ ]
393
395
  },
394
396
  {
397
+ "slug": "forth",
398
+ "uuid": "dc870c73-8a38-4b93-83b6-1144538f65bf",
395
399
  "core": false,
400
+ "unlocked_by": null,
396
401
  "difficulty": 9,
397
- "slug": "forth",
398
402
  "topics": [
399
403
  "interpreters"
400
- ],
401
- "unlocked_by": null,
402
- "uuid": "dc870c73-8a38-4b93-83b6-1144538f65bf"
404
+ ]
403
405
  },
404
406
  {
407
+ "slug": "zipper",
408
+ "uuid": "f75ff9fa-59cd-4b23-a2e1-13494d206e92",
405
409
  "core": false,
410
+ "unlocked_by": null,
406
411
  "difficulty": 10,
407
- "slug": "zipper",
408
412
  "topics": [
409
413
  "functional_programming"
410
- ],
411
- "unlocked_by": null,
412
- "uuid": "f75ff9fa-59cd-4b23-a2e1-13494d206e92"
414
+ ]
413
415
  },
414
416
  {
417
+ "slug": "react",
418
+ "uuid": "6b2139a0-953d-414a-8d40-641b431318b1",
415
419
  "core": false,
420
+ "unlocked_by": null,
416
421
  "difficulty": 10,
417
- "slug": "react",
418
422
  "topics": [
419
423
  "reactive_programming"
420
- ],
421
- "unlocked_by": null,
422
- "uuid": "6b2139a0-953d-414a-8d40-641b431318b1"
424
+ ]
423
425
  },
424
426
  {
427
+ "slug": "hangman",
428
+ "uuid": "4a17796e-3faf-48e4-8db4-e39374fee716",
425
429
  "core": false,
430
+ "unlocked_by": null,
426
431
  "difficulty": 10,
427
- "slug": "hangman",
428
432
  "topics": [
429
433
  "reactive_programming"
430
- ],
431
- "unlocked_by": null,
432
- "uuid": "4a17796e-3faf-48e4-8db4-e39374fee716"
434
+ ]
433
435
  },
434
436
  {
435
- "deprecated": true,
436
437
  "slug": "hexadecimal",
437
- "uuid": "d0c937ef-3c7b-40be-891d-3024129b443f"
438
+ "uuid": "d0c937ef-3c7b-40be-891d-3024129b443f",
439
+ "core": false,
440
+ "unlocked_by": null,
441
+ "difficulty": 0,
442
+ "topics": null,
443
+ "deprecated": true
438
444
  }
439
- ],
440
- "foregone": [],
441
- "language": "OCaml"
442
- }
445
+ ]
446
+ }
@@ -1,8 +1,4 @@
1
- [OCaml](https://ocaml.org/) is an industrial strength programming language
2
- supporting functional, imperative and object-oriented styles. It is used as a
3
- "teaching language" by a lot of institutions. OCaml has a rich and powerful
4
- [type system](https://en.wikipedia.org/wiki/Type_system) that allows the
5
- compiler to catch some mistakes early on saving the developer a huge amount of
6
- frustration. [Type inference](https://en.wikipedia.org/wiki/Type_inference)
7
- relieves the developer from the tedium of providing all the type signatures by
8
- themselves.
1
+ [OCaml](https://ocaml.org/) is an industrial strength programming language supporting functional, imperative and object-oriented styles.
2
+ It is used as a "teaching language" by a lot of institutions.
3
+ OCaml has a rich and powerful [type system](https://en.wikipedia.org/wiki/Type_system) that allows the compiler to catch some mistakes early on saving the developer a huge amount of frustration.
4
+ [Type inference](https://en.wikipedia.org/wiki/Type_inference) relieves the developer from the tedium of providing all the type signatures by themselves.
@@ -6,3 +6,5 @@ bin/configlet.exe
6
6
  **/lib/
7
7
  **/node_modules
8
8
  **/*.bs.js
9
+ .merlin
10
+ .bsb.lock