trackler 2.2.0.1 → 2.2.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (636) hide show
  1. checksums.yaml +4 -4
  2. data/fixtures/tracks/fake/config.json +4 -3
  3. data/fixtures/tracks/fruit/config.json +4 -3
  4. data/lib/trackler/track.rb +2 -2
  5. data/lib/trackler/version.rb +1 -1
  6. data/tracks/{java/exercises/allergies/.meta/readme.go.tmpl → c/config/exercise_readme.go.tmpl} +0 -1
  7. data/tracks/c/exercises/acronym/README.md +47 -0
  8. data/tracks/c/exercises/all-your-base/README.md +67 -0
  9. data/tracks/c/exercises/allergies/README.md +69 -0
  10. data/tracks/c/exercises/anagram/README.md +45 -0
  11. data/tracks/c/exercises/atbash-cipher/README.md +66 -0
  12. data/tracks/c/exercises/beer-song/README.md +359 -0
  13. data/tracks/c/exercises/binary/README.md +67 -0
  14. data/tracks/c/exercises/binary-search/README.md +73 -0
  15. data/tracks/c/exercises/bob/README.md +50 -0
  16. data/tracks/c/exercises/clock/README.md +45 -0
  17. data/tracks/c/exercises/difference-of-squares/README.md +51 -0
  18. data/tracks/c/exercises/gigasecond/README.md +43 -0
  19. data/tracks/c/exercises/grains/README.md +66 -0
  20. data/tracks/c/exercises/hamming/README.md +74 -0
  21. data/tracks/c/exercises/hello-world/README.md +53 -0
  22. data/tracks/c/exercises/isogram/README.md +51 -0
  23. data/tracks/c/exercises/largest-series-product/README.md +52 -0
  24. data/tracks/c/exercises/leap/README.md +65 -0
  25. data/tracks/c/exercises/meetup/README.md +62 -0
  26. data/tracks/c/exercises/nth-prime/README.md +47 -0
  27. data/tracks/c/exercises/nucleotide-count/README.md +65 -0
  28. data/tracks/c/exercises/palindrome-products/README.md +72 -0
  29. data/tracks/c/exercises/pangram/README.md +47 -0
  30. data/tracks/c/exercises/pascals-triangle/README.md +53 -0
  31. data/tracks/c/exercises/perfect-numbers/README.md +56 -0
  32. data/tracks/c/exercises/phone-number/README.md +66 -0
  33. data/tracks/c/exercises/raindrops/README.md +56 -0
  34. data/tracks/c/exercises/react/README.md +51 -0
  35. data/tracks/c/exercises/rna-transcription/README.md +57 -0
  36. data/tracks/c/exercises/robot-simulator/README.md +66 -0
  37. data/tracks/c/exercises/roman-numerals/README.md +81 -0
  38. data/tracks/c/exercises/scrabble-score/README.md +76 -0
  39. data/tracks/c/exercises/series/README.md +59 -0
  40. data/tracks/c/exercises/sieve/README.md +66 -0
  41. data/tracks/c/exercises/space-age/README.md +56 -0
  42. data/tracks/c/exercises/sum-of-multiples/README.md +50 -0
  43. data/tracks/c/exercises/triangle/README.md +58 -0
  44. data/tracks/c/exercises/word-count/README.md +51 -0
  45. data/tracks/ceylon/README.md +3 -3
  46. data/tracks/ceylon/config/exercise-readme-insert.md +1 -0
  47. data/tracks/{java/exercises/accumulate/.meta/readme.go.tmpl → ceylon/config/exercise_readme.go.tmpl} +0 -1
  48. data/tracks/ceylon/exercises/anagram/README.md +29 -0
  49. data/tracks/ceylon/{docs/EXERCISE_README_INSERT.md → exercises/bracket-push/README.md} +12 -0
  50. data/tracks/ceylon/exercises/hamming/README.md +58 -0
  51. data/tracks/ceylon/exercises/largest-series-product/README.md +36 -0
  52. data/tracks/ceylon/exercises/leap/README.md +49 -0
  53. data/tracks/ceylon/exercises/react/README.md +35 -0
  54. data/tracks/ceylon/exercises/sieve/README.md +50 -0
  55. data/tracks/{java/exercises/acronym/.meta/readme.go.tmpl → delphi/config/exercise_readme.go.tmpl} +0 -1
  56. data/tracks/delphi/exercises/allergies/README.md +58 -0
  57. data/tracks/delphi/exercises/bank-account/README.md +51 -0
  58. data/tracks/delphi/exercises/beer-song/README.md +348 -0
  59. data/tracks/delphi/exercises/binary-search/README.md +62 -0
  60. data/tracks/delphi/exercises/bob/README.md +39 -0
  61. data/tracks/delphi/exercises/book-store/README.md +95 -0
  62. data/tracks/delphi/exercises/bowling/README.md +74 -0
  63. data/tracks/delphi/exercises/circular-buffer/README.md +71 -0
  64. data/tracks/delphi/exercises/clock/README.md +34 -0
  65. data/tracks/delphi/exercises/collatz-conjecture/README.md +54 -0
  66. data/tracks/delphi/exercises/etl/README.md +72 -0
  67. data/tracks/delphi/exercises/grains/README.md +55 -0
  68. data/tracks/delphi/exercises/hamming/README.md +63 -0
  69. data/tracks/delphi/exercises/hello-world/README.md +42 -0
  70. data/tracks/delphi/exercises/leap/README.md +54 -0
  71. data/tracks/delphi/exercises/minesweeper/README.md +51 -0
  72. data/tracks/delphi/exercises/nucleotide-count/README.md +54 -0
  73. data/tracks/delphi/exercises/perfect-numbers/README.md +45 -0
  74. data/tracks/delphi/exercises/phone-number/README.md +55 -0
  75. data/tracks/delphi/exercises/poker/README.md +33 -0
  76. data/tracks/delphi/exercises/raindrops/README.md +45 -0
  77. data/tracks/delphi/exercises/rna-transcription/README.md +46 -0
  78. data/tracks/delphi/exercises/roman-numerals/README.md +70 -0
  79. data/tracks/delphi/exercises/saddle-points/README.md +54 -0
  80. data/tracks/delphi/exercises/triangle/README.md +47 -0
  81. data/tracks/delphi/exercises/two-fer/README.md +69 -0
  82. data/tracks/delphi/exercises/wordy/README.md +84 -0
  83. data/tracks/{java/exercises/all-your-base/.meta/readme.go.tmpl → factor/config/exercise_readme.go.tmpl} +0 -1
  84. data/tracks/factor/exercises/hello-world/README.md +34 -0
  85. data/tracks/factor/exercises/isogram/README.md +32 -0
  86. data/tracks/factor/exercises/leap/README.md +46 -0
  87. data/tracks/factor/exercises/two-fer/README.md +61 -0
  88. data/tracks/haskell/config/exercise_readme.go.tmpl +16 -0
  89. data/tracks/haskell/exercises/accumulate/README.md +89 -0
  90. data/tracks/haskell/exercises/acronym/README.md +69 -0
  91. data/tracks/haskell/exercises/all-your-base/README.md +89 -0
  92. data/tracks/haskell/exercises/allergies/README.md +104 -0
  93. data/tracks/haskell/exercises/alphametics/README.md +96 -0
  94. data/tracks/haskell/exercises/anagram/README.md +91 -0
  95. data/tracks/haskell/exercises/atbash-cipher/README.md +88 -0
  96. data/tracks/haskell/exercises/bank-account/README.md +102 -0
  97. data/tracks/haskell/exercises/beer-song/README.md +401 -0
  98. data/tracks/haskell/exercises/binary/README.md +89 -0
  99. data/tracks/haskell/exercises/binary-search-tree/README.md +133 -0
  100. data/tracks/haskell/exercises/bob/README.md +72 -0
  101. data/tracks/haskell/exercises/bowling/README.md +128 -0
  102. data/tracks/haskell/exercises/bracket-push/README.md +64 -0
  103. data/tracks/haskell/exercises/change/README.md +77 -0
  104. data/tracks/haskell/exercises/clock/README.md +86 -0
  105. data/tracks/haskell/exercises/connect/README.md +88 -0
  106. data/tracks/haskell/exercises/crypto-square/README.md +128 -0
  107. data/tracks/haskell/exercises/custom-set/README.md +94 -0
  108. data/tracks/haskell/exercises/difference-of-squares/README.md +73 -0
  109. data/tracks/haskell/exercises/dominoes/README.md +72 -0
  110. data/tracks/haskell/exercises/etl/README.md +105 -0
  111. data/tracks/haskell/exercises/food-chain/README.md +145 -0
  112. data/tracks/haskell/exercises/forth/README.md +98 -0
  113. data/tracks/haskell/exercises/gigasecond/README.md +65 -0
  114. data/tracks/haskell/exercises/go-counting/README.md +109 -0
  115. data/tracks/haskell/exercises/grade-school/README.md +111 -0
  116. data/tracks/haskell/exercises/grains/README.md +88 -0
  117. data/tracks/haskell/exercises/hamming/README.md +96 -0
  118. data/tracks/haskell/exercises/hello-world/README.md +83 -0
  119. data/tracks/haskell/exercises/hexadecimal/README.md +68 -0
  120. data/tracks/haskell/exercises/house/README.md +187 -0
  121. data/tracks/haskell/exercises/kindergarten-garden/README.md +120 -0
  122. data/tracks/haskell/exercises/largest-series-product/README.md +74 -0
  123. data/tracks/haskell/exercises/leap/README.md +100 -0
  124. data/tracks/haskell/exercises/lens-person/README.md +66 -0
  125. data/tracks/haskell/exercises/linked-list/README.md +104 -0
  126. data/tracks/haskell/exercises/list-ops/README.md +64 -0
  127. data/tracks/haskell/exercises/luhn/README.md +125 -0
  128. data/tracks/haskell/exercises/matrix/README.md +125 -0
  129. data/tracks/haskell/exercises/meetup/README.md +92 -0
  130. data/tracks/haskell/exercises/minesweeper/README.md +84 -0
  131. data/tracks/haskell/exercises/nth-prime/README.md +69 -0
  132. data/tracks/haskell/exercises/nucleotide-count/README.md +87 -0
  133. data/tracks/haskell/exercises/ocr-numbers/README.md +139 -0
  134. data/tracks/haskell/exercises/octal/README.md +115 -0
  135. data/tracks/haskell/exercises/palindrome-products/README.md +115 -0
  136. data/tracks/haskell/exercises/pangram/README.md +69 -0
  137. data/tracks/haskell/exercises/parallel-letter-frequency/README.md +76 -0
  138. data/tracks/haskell/exercises/pascals-triangle/README.md +75 -0
  139. data/tracks/haskell/exercises/phone-number/README.md +88 -0
  140. data/tracks/haskell/exercises/pig-latin/README.md +78 -0
  141. data/tracks/haskell/exercises/pov/README.md +100 -0
  142. data/tracks/haskell/exercises/prime-factors/README.md +90 -0
  143. data/tracks/haskell/exercises/pythagorean-triplet/README.md +78 -0
  144. data/tracks/haskell/exercises/queen-attack/README.md +105 -0
  145. data/tracks/haskell/exercises/raindrops/README.md +78 -0
  146. data/tracks/haskell/exercises/rna-transcription/README.md +79 -0
  147. data/tracks/haskell/exercises/robot-name/README.md +90 -0
  148. data/tracks/haskell/exercises/robot-simulator/README.md +105 -0
  149. data/tracks/haskell/exercises/roman-numerals/README.md +112 -0
  150. data/tracks/haskell/exercises/run-length-encoding/README.md +84 -0
  151. data/tracks/haskell/exercises/saddle-points/README.md +87 -0
  152. data/tracks/haskell/exercises/say/README.md +123 -0
  153. data/tracks/haskell/exercises/scrabble-score/README.md +98 -0
  154. data/tracks/haskell/exercises/secret-handshake/README.md +89 -0
  155. data/tracks/haskell/exercises/series/README.md +106 -0
  156. data/tracks/haskell/exercises/sgf-parsing/README.md +146 -0
  157. data/tracks/haskell/exercises/sieve/README.md +88 -0
  158. data/tracks/haskell/exercises/simple-cipher/README.md +144 -0
  159. data/tracks/haskell/exercises/simple-linked-list/README.md +101 -0
  160. data/tracks/haskell/exercises/space-age/README.md +94 -0
  161. data/tracks/haskell/exercises/spiral-matrix/README.md +84 -0
  162. data/tracks/haskell/exercises/strain/README.md +94 -0
  163. data/tracks/haskell/exercises/sublist/README.md +80 -0
  164. data/tracks/haskell/exercises/sum-of-multiples/README.md +72 -0
  165. data/tracks/haskell/exercises/triangle/README.md +80 -0
  166. data/tracks/haskell/exercises/trinary/README.md +96 -0
  167. data/tracks/haskell/exercises/word-count/README.md +96 -0
  168. data/tracks/haskell/exercises/wordy/README.md +122 -0
  169. data/tracks/haskell/exercises/zebra-puzzle/README.md +86 -0
  170. data/tracks/haskell/exercises/zipper/README.md +85 -0
  171. data/tracks/java/config/exercise_readme.go.tmpl +16 -0
  172. data/tracks/java/exercises/accumulate/README.md +0 -1
  173. data/tracks/java/exercises/acronym/README.md +0 -1
  174. data/tracks/java/exercises/all-your-base/README.md +0 -1
  175. data/tracks/java/exercises/allergies/README.md +0 -1
  176. data/tracks/java/exercises/anagram/README.md +0 -1
  177. data/tracks/java/exercises/atbash-cipher/README.md +0 -1
  178. data/tracks/java/exercises/bank-account/README.md +0 -1
  179. data/tracks/java/exercises/beer-song/README.md +0 -1
  180. data/tracks/java/exercises/binary/README.md +0 -1
  181. data/tracks/java/exercises/binary-search/README.md +0 -1
  182. data/tracks/java/exercises/binary-search-tree/README.md +0 -1
  183. data/tracks/java/exercises/bob/README.md +0 -1
  184. data/tracks/java/exercises/book-store/README.md +0 -1
  185. data/tracks/java/exercises/bowling/README.md +0 -1
  186. data/tracks/java/exercises/bracket-push/README.md +0 -1
  187. data/tracks/java/exercises/change/README.md +0 -1
  188. data/tracks/java/exercises/circular-buffer/README.md +0 -1
  189. data/tracks/java/exercises/clock/README.md +0 -1
  190. data/tracks/java/exercises/collatz-conjecture/README.md +0 -1
  191. data/tracks/java/exercises/complex-numbers/README.md +0 -1
  192. data/tracks/java/exercises/crypto-square/README.md +0 -1
  193. data/tracks/java/exercises/custom-set/README.md +0 -1
  194. data/tracks/java/exercises/diamond/README.md +0 -1
  195. data/tracks/java/exercises/difference-of-squares/README.md +0 -1
  196. data/tracks/java/exercises/etl/README.md +0 -1
  197. data/tracks/java/exercises/flatten-array/README.md +0 -1
  198. data/tracks/java/exercises/food-chain/README.md +0 -1
  199. data/tracks/java/exercises/gigasecond/README.md +0 -1
  200. data/tracks/java/exercises/grade-school/README.md +0 -1
  201. data/tracks/java/exercises/hamming/README.md +0 -1
  202. data/tracks/java/exercises/hello-world/README.md +0 -1
  203. data/tracks/java/exercises/hexadecimal/README.md +0 -1
  204. data/tracks/java/exercises/isogram/README.md +0 -1
  205. data/tracks/java/exercises/kindergarten-garden/README.md +0 -1
  206. data/tracks/java/exercises/largest-series-product/README.md +0 -1
  207. data/tracks/java/exercises/linked-list/README.md +0 -1
  208. data/tracks/java/exercises/list-ops/README.md +0 -1
  209. data/tracks/java/exercises/luhn/README.md +0 -1
  210. data/tracks/java/exercises/matrix/README.md +0 -1
  211. data/tracks/java/exercises/meetup/README.md +0 -1
  212. data/tracks/java/exercises/minesweeper/README.md +0 -1
  213. data/tracks/java/exercises/nth-prime/README.md +0 -1
  214. data/tracks/java/exercises/nucleotide-count/README.md +0 -1
  215. data/tracks/java/exercises/ocr-numbers/README.md +0 -1
  216. data/tracks/java/exercises/octal/README.md +0 -1
  217. data/tracks/java/exercises/palindrome-products/README.md +0 -1
  218. data/tracks/java/exercises/pangram/README.md +0 -1
  219. data/tracks/java/exercises/pascals-triangle/README.md +0 -1
  220. data/tracks/java/exercises/perfect-numbers/README.md +0 -1
  221. data/tracks/java/exercises/phone-number/README.md +0 -1
  222. data/tracks/java/exercises/pig-latin/README.md +0 -1
  223. data/tracks/java/exercises/poker/README.md +0 -1
  224. data/tracks/java/exercises/prime-factors/README.md +0 -1
  225. data/tracks/java/exercises/pythagorean-triplet/README.md +0 -1
  226. data/tracks/java/exercises/queen-attack/README.md +0 -1
  227. data/tracks/java/exercises/raindrops/README.md +0 -1
  228. data/tracks/java/exercises/rectangles/README.md +0 -1
  229. data/tracks/java/exercises/rna-transcription/README.md +0 -1
  230. data/tracks/java/exercises/robot-name/README.md +0 -1
  231. data/tracks/java/exercises/robot-simulator/README.md +0 -1
  232. data/tracks/java/exercises/roman-numerals/README.md +0 -1
  233. data/tracks/java/exercises/rotational-cipher/README.md +47 -0
  234. data/tracks/java/exercises/run-length-encoding/README.md +0 -1
  235. data/tracks/java/exercises/saddle-points/README.md +0 -1
  236. data/tracks/java/exercises/scrabble-score/README.md +0 -1
  237. data/tracks/java/exercises/secret-handshake/README.md +0 -1
  238. data/tracks/java/exercises/series/README.md +0 -1
  239. data/tracks/java/exercises/sieve/README.md +0 -1
  240. data/tracks/java/exercises/simple-cipher/README.md +0 -1
  241. data/tracks/java/exercises/simple-linked-list/README.md +0 -1
  242. data/tracks/java/exercises/space-age/README.md +0 -1
  243. data/tracks/java/exercises/spiral-matrix/README.md +0 -1
  244. data/tracks/java/exercises/strain/README.md +0 -1
  245. data/tracks/java/exercises/sublist/README.md +0 -1
  246. data/tracks/java/exercises/sum-of-multiples/README.md +0 -1
  247. data/tracks/java/exercises/transpose/README.md +0 -1
  248. data/tracks/java/exercises/triangle/README.md +0 -1
  249. data/tracks/java/exercises/trinary/README.md +0 -1
  250. data/tracks/java/exercises/twelve-days/README.md +0 -1
  251. data/tracks/java/exercises/two-fer/README.md +0 -1
  252. data/tracks/java/exercises/word-count/README.md +0 -1
  253. data/tracks/java/exercises/word-search/README.md +0 -1
  254. data/tracks/java/exercises/wordy/README.md +0 -1
  255. data/tracks/javascript/config/exercise_readme.go.tmpl +16 -0
  256. data/tracks/javascript/exercises/accumulate/README.md +59 -0
  257. data/tracks/javascript/exercises/acronym/README.md +39 -0
  258. data/tracks/javascript/exercises/all-your-base/README.md +59 -0
  259. data/tracks/javascript/exercises/allergies/README.md +61 -0
  260. data/tracks/javascript/exercises/alphametics/README.md +59 -0
  261. data/tracks/javascript/exercises/anagram/README.md +37 -0
  262. data/tracks/javascript/exercises/atbash-cipher/README.md +58 -0
  263. data/tracks/javascript/exercises/beer-song/README.md +351 -0
  264. data/tracks/javascript/exercises/binary/README.md +59 -0
  265. data/tracks/javascript/exercises/binary-search/README.md +65 -0
  266. data/tracks/javascript/exercises/binary-search-tree/README.md +84 -0
  267. data/tracks/javascript/exercises/bob/README.md +42 -0
  268. data/tracks/javascript/exercises/bowling/README.md +77 -0
  269. data/tracks/javascript/exercises/bracket-push/README.md +34 -0
  270. data/tracks/javascript/exercises/circular-buffer/README.md +74 -0
  271. data/tracks/javascript/exercises/clock/README.md +37 -0
  272. data/tracks/javascript/exercises/crypto-square/README.md +98 -0
  273. data/tracks/javascript/exercises/custom-set/README.md +35 -0
  274. data/tracks/javascript/exercises/diamond/README.md +83 -0
  275. data/tracks/javascript/exercises/difference-of-squares/README.md +43 -0
  276. data/tracks/javascript/exercises/etl/README.md +75 -0
  277. data/tracks/javascript/exercises/flatten-array/README.md +42 -0
  278. data/tracks/javascript/exercises/food-chain/README.md +94 -0
  279. data/tracks/javascript/exercises/gigasecond/README.md +35 -0
  280. data/tracks/javascript/exercises/grade-school/README.md +66 -0
  281. data/tracks/javascript/exercises/grains/README.md +58 -0
  282. data/tracks/javascript/exercises/hamming/README.md +66 -0
  283. data/tracks/javascript/exercises/hello-world/README.md +132 -0
  284. data/tracks/javascript/exercises/hexadecimal/README.md +38 -0
  285. data/tracks/javascript/exercises/isogram/README.md +43 -0
  286. data/tracks/javascript/exercises/kindergarten-garden/README.md +90 -0
  287. data/tracks/javascript/exercises/largest-series-product/README.md +44 -0
  288. data/tracks/javascript/exercises/leap/README.md +57 -0
  289. data/tracks/javascript/exercises/linked-list/README.md +58 -0
  290. data/tracks/javascript/exercises/list-ops/README.md +34 -0
  291. data/tracks/javascript/exercises/luhn/README.md +95 -0
  292. data/tracks/javascript/exercises/matrix/README.md +69 -0
  293. data/tracks/javascript/exercises/meetup/README.md +54 -0
  294. data/tracks/javascript/exercises/minesweeper/README.md +54 -0
  295. data/tracks/javascript/exercises/nth-prime/README.md +39 -0
  296. data/tracks/javascript/exercises/nucleotide-count/README.md +57 -0
  297. data/tracks/javascript/exercises/ocr-numbers/README.md +109 -0
  298. data/tracks/javascript/exercises/octal/README.md +73 -0
  299. data/tracks/javascript/exercises/palindrome-products/README.md +64 -0
  300. data/tracks/javascript/exercises/pangram/README.md +39 -0
  301. data/tracks/javascript/exercises/pascals-triangle/README.md +45 -0
  302. data/tracks/javascript/exercises/perfect-numbers/README.md +48 -0
  303. data/tracks/javascript/exercises/phone-number/README.md +58 -0
  304. data/tracks/javascript/exercises/pig-latin/README.md +48 -0
  305. data/tracks/javascript/exercises/point-mutations/README.md +65 -0
  306. data/tracks/javascript/exercises/prime-factors/README.md +60 -0
  307. data/tracks/javascript/exercises/proverb/README.md +42 -0
  308. data/tracks/javascript/exercises/pythagorean-triplet/README.md +48 -0
  309. data/tracks/javascript/exercises/queen-attack/README.md +57 -0
  310. data/tracks/javascript/exercises/raindrops/README.md +48 -0
  311. data/tracks/javascript/exercises/rna-transcription/README.md +49 -0
  312. data/tracks/javascript/exercises/robot-name/README.md +46 -0
  313. data/tracks/javascript/exercises/robot-simulator/README.md +58 -0
  314. data/tracks/javascript/exercises/roman-numerals/README.md +73 -0
  315. data/tracks/javascript/exercises/run-length-encoding/README.md +54 -0
  316. data/tracks/javascript/exercises/saddle-points/README.md +57 -0
  317. data/tracks/javascript/exercises/say/README.md +93 -0
  318. data/tracks/javascript/exercises/scrabble-score/README.md +68 -0
  319. data/tracks/javascript/exercises/secret-handshake/README.md +59 -0
  320. data/tracks/javascript/exercises/series/README.md +51 -0
  321. data/tracks/javascript/exercises/sieve/README.md +58 -0
  322. data/tracks/javascript/exercises/simple-cipher/README.md +114 -0
  323. data/tracks/javascript/exercises/simple-linked-list/README.md +52 -0
  324. data/tracks/javascript/exercises/space-age/README.md +48 -0
  325. data/tracks/javascript/exercises/strain/README.md +64 -0
  326. data/tracks/javascript/exercises/sum-of-multiples/README.md +42 -0
  327. data/tracks/javascript/exercises/triangle/README.md +50 -0
  328. data/tracks/javascript/exercises/trinary/README.md +52 -0
  329. data/tracks/javascript/exercises/two-bucket/README.md +60 -0
  330. data/tracks/javascript/exercises/word-count/README.md +43 -0
  331. data/tracks/javascript/exercises/wordy/README.md +87 -0
  332. data/tracks/lua/config/exercise_readme.go.tmpl +16 -0
  333. data/tracks/lua/exercises/acronym/README.md +25 -0
  334. data/tracks/lua/exercises/all-your-base/README.md +45 -0
  335. data/tracks/lua/exercises/allergies/README.md +47 -0
  336. data/tracks/lua/exercises/alphametics/README.md +45 -0
  337. data/tracks/lua/exercises/anagram/README.md +23 -0
  338. data/tracks/lua/exercises/atbash-cipher/README.md +44 -0
  339. data/tracks/lua/exercises/bank-account/README.md +40 -0
  340. data/tracks/lua/exercises/beer-song/README.md +337 -0
  341. data/tracks/lua/exercises/binary/README.md +45 -0
  342. data/tracks/lua/exercises/binary-search/README.md +51 -0
  343. data/tracks/lua/exercises/binary-search-tree/README.md +70 -0
  344. data/tracks/lua/exercises/bob/README.md +28 -0
  345. data/tracks/lua/exercises/bowling/README.md +63 -0
  346. data/tracks/lua/exercises/bracket-push/README.md +20 -0
  347. data/tracks/lua/exercises/change/README.md +33 -0
  348. data/tracks/lua/exercises/circular-buffer/README.md +60 -0
  349. data/tracks/lua/exercises/clock/README.md +23 -0
  350. data/tracks/lua/exercises/crypto-square/README.md +84 -0
  351. data/tracks/lua/exercises/custom-set/README.md +21 -0
  352. data/tracks/lua/exercises/diamond/README.md +69 -0
  353. data/tracks/lua/exercises/difference-of-squares/README.md +29 -0
  354. data/tracks/lua/exercises/etl/README.md +61 -0
  355. data/tracks/lua/exercises/flatten-array/README.md +28 -0
  356. data/tracks/lua/exercises/food-chain/README.md +80 -0
  357. data/tracks/lua/exercises/gigasecond/README.md +21 -0
  358. data/tracks/lua/exercises/grade-school/README.md +52 -0
  359. data/tracks/lua/exercises/grains/README.md +44 -0
  360. data/tracks/lua/exercises/hamming/README.md +52 -0
  361. data/tracks/lua/exercises/hello-world/README.md +31 -0
  362. data/tracks/lua/exercises/house/README.md +123 -0
  363. data/tracks/lua/exercises/isogram/README.md +29 -0
  364. data/tracks/lua/exercises/kindergarten-garden/README.md +76 -0
  365. data/tracks/lua/exercises/largest-series-product/README.md +30 -0
  366. data/tracks/lua/exercises/leap/README.md +43 -0
  367. data/tracks/lua/exercises/linked-list/README.md +44 -0
  368. data/tracks/lua/exercises/list-ops/README.md +20 -0
  369. data/tracks/lua/exercises/luhn/README.md +81 -0
  370. data/tracks/lua/exercises/matrix/README.md +55 -0
  371. data/tracks/lua/exercises/meetup/README.md +40 -0
  372. data/tracks/lua/exercises/minesweeper/README.md +40 -0
  373. data/tracks/lua/exercises/nth-prime/README.md +25 -0
  374. data/tracks/lua/exercises/nucleotide-count/README.md +43 -0
  375. data/tracks/lua/exercises/ocr-numbers/README.md +95 -0
  376. data/tracks/lua/exercises/octal/README.md +59 -0
  377. data/tracks/lua/exercises/pangram/README.md +25 -0
  378. data/tracks/lua/exercises/pascals-triangle/README.md +31 -0
  379. data/tracks/lua/exercises/perfect-numbers/README.md +34 -0
  380. data/tracks/lua/exercises/phone-number/README.md +44 -0
  381. data/tracks/lua/exercises/pig-latin/README.md +34 -0
  382. data/tracks/lua/exercises/pov/README.md +56 -0
  383. data/tracks/lua/exercises/prime-factors/README.md +46 -0
  384. data/tracks/lua/exercises/protein-translation/README.md +59 -0
  385. data/tracks/lua/exercises/pythagorean-triplet/README.md +34 -0
  386. data/tracks/lua/exercises/rail-fence-cipher/README.md +70 -0
  387. data/tracks/lua/exercises/raindrops/README.md +34 -0
  388. data/tracks/lua/exercises/rectangles/README.md +77 -0
  389. data/tracks/lua/exercises/rna-transcription/README.md +35 -0
  390. data/tracks/lua/exercises/robot-name/README.md +32 -0
  391. data/tracks/lua/exercises/robot-simulator/README.md +44 -0
  392. data/tracks/lua/exercises/roman-numerals/README.md +59 -0
  393. data/tracks/lua/exercises/run-length-encoding/README.md +40 -0
  394. data/tracks/lua/exercises/say/README.md +79 -0
  395. data/tracks/lua/exercises/scrabble-score/README.md +54 -0
  396. data/tracks/lua/exercises/secret-handshake/README.md +45 -0
  397. data/tracks/lua/exercises/series/README.md +37 -0
  398. data/tracks/lua/exercises/sieve/README.md +44 -0
  399. data/tracks/lua/exercises/space-age/README.md +34 -0
  400. data/tracks/lua/exercises/sublist/README.md +31 -0
  401. data/tracks/lua/exercises/sum-of-multiples/README.md +28 -0
  402. data/tracks/lua/exercises/tournament/README.md +78 -0
  403. data/tracks/lua/exercises/transpose/README.md +75 -0
  404. data/tracks/lua/exercises/triangle/README.md +36 -0
  405. data/tracks/lua/exercises/variable-length-quantity/README.md +49 -0
  406. data/tracks/lua/exercises/word-count/README.md +29 -0
  407. data/tracks/lua/exercises/word-search/README.md +40 -0
  408. data/tracks/mips/config/exercise_readme.go.tmpl +16 -0
  409. data/tracks/mips/exercises/atbash-cipher/README.md +34 -0
  410. data/tracks/mips/exercises/binary/README.md +35 -0
  411. data/tracks/mips/exercises/difference-of-squares/README.md +19 -0
  412. data/tracks/mips/exercises/hamming/README.md +42 -0
  413. data/tracks/mips/exercises/hexadecimal/README.md +14 -0
  414. data/tracks/mips/exercises/isogram/README.md +19 -0
  415. data/tracks/mips/exercises/leap/README.md +33 -0
  416. data/tracks/mips/exercises/nth-prime/README.md +15 -0
  417. data/tracks/mips/exercises/octal/README.md +49 -0
  418. data/tracks/mips/exercises/raindrops/README.md +24 -0
  419. data/tracks/mips/exercises/rna-transcription/README.md +25 -0
  420. data/tracks/mips/exercises/scrabble-score/README.md +44 -0
  421. data/tracks/mips/exercises/triangle/README.md +26 -0
  422. data/tracks/mips/exercises/trinary/README.md +28 -0
  423. data/tracks/purescript/config/exercise_readme.go.tmpl +16 -0
  424. data/tracks/purescript/exercises/accumulate/README.md +35 -0
  425. data/tracks/purescript/exercises/acronym/README.md +15 -0
  426. data/tracks/purescript/exercises/all-your-base/README.md +35 -0
  427. data/tracks/purescript/exercises/allergies/README.md +37 -0
  428. data/tracks/purescript/exercises/atbash-cipher/README.md +34 -0
  429. data/tracks/purescript/exercises/binary-search/README.md +41 -0
  430. data/tracks/purescript/exercises/bob/README.md +18 -0
  431. data/tracks/purescript/exercises/bracket-push/README.md +10 -0
  432. data/tracks/purescript/exercises/crypto-square/README.md +74 -0
  433. data/tracks/purescript/exercises/diamond/README.md +59 -0
  434. data/tracks/purescript/exercises/difference-of-squares/README.md +19 -0
  435. data/tracks/purescript/exercises/etl/README.md +51 -0
  436. data/tracks/purescript/exercises/hamming/README.md +42 -0
  437. data/tracks/purescript/exercises/hello-world/README.md +21 -0
  438. data/tracks/purescript/exercises/isogram/README.md +19 -0
  439. data/tracks/purescript/exercises/largest-series-product/README.md +20 -0
  440. data/tracks/purescript/exercises/leap/README.md +33 -0
  441. data/tracks/purescript/exercises/meetup/README.md +30 -0
  442. data/tracks/purescript/exercises/pangram/README.md +15 -0
  443. data/tracks/purescript/exercises/pascals-triangle/README.md +21 -0
  444. data/tracks/purescript/exercises/raindrops/README.md +24 -0
  445. data/tracks/purescript/exercises/scrabble-score/README.md +44 -0
  446. data/tracks/purescript/exercises/triangle/README.md +26 -0
  447. data/tracks/purescript/exercises/word-count/README.md +19 -0
  448. data/tracks/r/config/exercise_readme.go.tmpl +16 -0
  449. data/tracks/r/exercises/anagram/README.md +23 -0
  450. data/tracks/r/exercises/beer-song/README.md +337 -0
  451. data/tracks/r/exercises/bob/README.md +28 -0
  452. data/tracks/r/exercises/difference-of-squares/README.md +29 -0
  453. data/tracks/r/exercises/grains/README.md +44 -0
  454. data/tracks/r/exercises/hamming/README.md +52 -0
  455. data/tracks/r/exercises/hello-world/README.md +31 -0
  456. data/tracks/r/exercises/isogram/README.md +29 -0
  457. data/tracks/r/exercises/largest-series-product/README.md +30 -0
  458. data/tracks/r/exercises/leap/README.md +43 -0
  459. data/tracks/r/exercises/luhn/README.md +81 -0
  460. data/tracks/r/exercises/pascals-triangle/README.md +31 -0
  461. data/tracks/r/exercises/perfect-numbers/README.md +34 -0
  462. data/tracks/r/exercises/phone-number/README.md +44 -0
  463. data/tracks/r/exercises/prime-factors/README.md +46 -0
  464. data/tracks/r/exercises/raindrops/README.md +34 -0
  465. data/tracks/r/exercises/rna-transcription/README.md +35 -0
  466. data/tracks/r/exercises/rotational-cipher/README.md +46 -0
  467. data/tracks/r/exercises/scrabble-score/README.md +54 -0
  468. data/tracks/r/exercises/secret-handshake/README.md +45 -0
  469. data/tracks/r/exercises/sieve/README.md +44 -0
  470. data/tracks/r/exercises/space-age/README.md +34 -0
  471. data/tracks/r/exercises/sum-of-multiples/README.md +28 -0
  472. data/tracks/r/exercises/tournament/README.md +78 -0
  473. data/tracks/r/exercises/word-count/README.md +29 -0
  474. data/tracks/rust/{docs/EXERCISE_README_INSERT.md → config/exercise-readme-insert.md} +1 -1
  475. data/tracks/rust/config/exercise_readme.go.tmpl +16 -0
  476. data/tracks/rust/exercises/acronym/README.md +47 -0
  477. data/tracks/rust/exercises/all-your-base/README.md +67 -0
  478. data/tracks/rust/exercises/allergies/README.md +69 -0
  479. data/tracks/rust/exercises/alphametics/README.md +67 -0
  480. data/tracks/rust/exercises/anagram/README.md +45 -0
  481. data/tracks/rust/exercises/atbash-cipher/README.md +66 -0
  482. data/tracks/rust/exercises/beer-song/README.md +359 -0
  483. data/tracks/rust/exercises/bob/README.md +50 -0
  484. data/tracks/rust/exercises/bowling/README.md +85 -0
  485. data/tracks/rust/exercises/bracket-push/README.md +50 -0
  486. data/tracks/rust/exercises/circular-buffer/README.md +82 -0
  487. data/tracks/rust/exercises/custom-set/README.md +43 -0
  488. data/tracks/rust/exercises/difference-of-squares/README.md +51 -0
  489. data/tracks/rust/exercises/dominoes/README.md +50 -0
  490. data/tracks/rust/exercises/etl/README.md +83 -0
  491. data/tracks/rust/exercises/forth/README.md +61 -0
  492. data/tracks/rust/exercises/gigasecond/Cargo.lock +3 -3
  493. data/tracks/rust/exercises/gigasecond/Cargo.toml +1 -1
  494. data/tracks/rust/exercises/gigasecond/README.md +43 -0
  495. data/tracks/rust/exercises/gigasecond/example.rs +1 -1
  496. data/tracks/rust/exercises/gigasecond/src/lib.rs +2 -2
  497. data/tracks/rust/exercises/gigasecond/tests/gigasecond.rs +10 -10
  498. data/tracks/rust/exercises/grade-school/README.md +74 -0
  499. data/tracks/rust/exercises/grains/README.md +66 -0
  500. data/tracks/rust/exercises/hamming/README.md +74 -0
  501. data/tracks/rust/exercises/hello-world/README.md +53 -0
  502. data/tracks/rust/exercises/hexadecimal/README.md +46 -0
  503. data/tracks/rust/exercises/largest-series-product/README.md +60 -0
  504. data/tracks/rust/exercises/leap/README.md +65 -0
  505. data/tracks/rust/exercises/luhn/README.md +103 -0
  506. data/tracks/rust/exercises/luhn-from/README.md +49 -0
  507. data/tracks/rust/exercises/luhn-trait/README.md +57 -0
  508. data/tracks/rust/exercises/minesweeper/README.md +62 -0
  509. data/tracks/rust/exercises/nucleotide-codons/README.md +54 -0
  510. data/tracks/rust/exercises/nucleotide-count/README.md +65 -0
  511. data/tracks/rust/exercises/ocr-numbers/README.md +117 -0
  512. data/tracks/rust/exercises/pangram/README.md +47 -0
  513. data/tracks/rust/exercises/parallel-letter-frequency/README.md +77 -0
  514. data/tracks/rust/exercises/pascals-triangle/README.md +53 -0
  515. data/tracks/rust/exercises/phone-number/README.md +66 -0
  516. data/tracks/rust/exercises/protein-translation/README.md +81 -0
  517. data/tracks/rust/exercises/queen-attack/README.md +65 -0
  518. data/tracks/rust/exercises/raindrops/README.md +56 -0
  519. data/tracks/rust/exercises/react/README.md +51 -0
  520. data/tracks/rust/exercises/rectangles/README.md +99 -0
  521. data/tracks/rust/exercises/rna-transcription/README.md +57 -0
  522. data/tracks/rust/exercises/robot-name/README.md +54 -0
  523. data/tracks/rust/exercises/robot-simulator/README.md +66 -0
  524. data/tracks/rust/exercises/roman-numerals/README.md +81 -0
  525. data/tracks/rust/exercises/rotational-cipher/README.md +68 -0
  526. data/tracks/rust/exercises/run-length-encoding/README.md +62 -0
  527. data/tracks/rust/exercises/scrabble-score/README.md +76 -0
  528. data/tracks/rust/exercises/sieve/README.md +66 -0
  529. data/tracks/rust/exercises/space-age/README.md +64 -0
  530. data/tracks/rust/exercises/sublist/README.md +53 -0
  531. data/tracks/rust/exercises/sum-of-multiples/README.md +50 -0
  532. data/tracks/rust/exercises/tournament/README.md +100 -0
  533. data/tracks/rust/exercises/triangle/README.md +71 -0
  534. data/tracks/rust/exercises/variable-length-quantity/README.md +71 -0
  535. data/tracks/rust/exercises/word-count/README.md +51 -0
  536. data/tracks/rust/exercises/wordy/README.md +95 -0
  537. data/tracks/vimscript/config/exercise_readme.go.tmpl +16 -0
  538. data/tracks/vimscript/exercises/allergies/README.md +46 -0
  539. data/tracks/vimscript/exercises/anagram/README.md +22 -0
  540. data/tracks/vimscript/exercises/atbash-cipher/README.md +43 -0
  541. data/tracks/vimscript/exercises/beer-song/README.md +336 -0
  542. data/tracks/vimscript/exercises/bob/README.md +27 -0
  543. data/tracks/vimscript/exercises/difference-of-squares/README.md +28 -0
  544. data/tracks/vimscript/exercises/etl/README.md +60 -0
  545. data/tracks/vimscript/exercises/hamming/README.md +51 -0
  546. data/tracks/vimscript/exercises/hello-world/README.md +30 -0
  547. data/tracks/vimscript/exercises/largest-series-product/README.md +29 -0
  548. data/tracks/vimscript/exercises/leap/README.md +42 -0
  549. data/tracks/vimscript/exercises/nucleotide-count/README.md +42 -0
  550. data/tracks/vimscript/exercises/pangram/README.md +24 -0
  551. data/tracks/vimscript/exercises/phone-number/README.md +43 -0
  552. data/tracks/vimscript/exercises/raindrops/README.md +33 -0
  553. data/tracks/vimscript/exercises/rna-transcription/README.md +34 -0
  554. data/tracks/vimscript/exercises/roman-numerals/README.md +58 -0
  555. data/tracks/vimscript/exercises/scrabble-score/README.md +53 -0
  556. data/tracks/vimscript/exercises/triangle/README.md +35 -0
  557. data/tracks/vimscript/exercises/word-count/README.md +28 -0
  558. metadata +466 -86
  559. data/tracks/java/exercises/anagram/.meta/readme.go.tmpl +0 -17
  560. data/tracks/java/exercises/atbash-cipher/.meta/readme.go.tmpl +0 -17
  561. data/tracks/java/exercises/bank-account/.meta/readme.go.tmpl +0 -17
  562. data/tracks/java/exercises/beer-song/.meta/readme.go.tmpl +0 -17
  563. data/tracks/java/exercises/binary/.meta/readme.go.tmpl +0 -17
  564. data/tracks/java/exercises/binary-search/.meta/readme.go.tmpl +0 -17
  565. data/tracks/java/exercises/binary-search-tree/.meta/readme.go.tmpl +0 -17
  566. data/tracks/java/exercises/bob/.meta/readme.go.tmpl +0 -17
  567. data/tracks/java/exercises/book-store/.meta/readme.go.tmpl +0 -17
  568. data/tracks/java/exercises/bowling/.meta/readme.go.tmpl +0 -17
  569. data/tracks/java/exercises/bracket-push/.meta/readme.go.tmpl +0 -17
  570. data/tracks/java/exercises/change/.meta/readme.go.tmpl +0 -17
  571. data/tracks/java/exercises/circular-buffer/.meta/readme.go.tmpl +0 -17
  572. data/tracks/java/exercises/clock/.meta/readme.go.tmpl +0 -17
  573. data/tracks/java/exercises/collatz-conjecture/.meta/readme.go.tmpl +0 -17
  574. data/tracks/java/exercises/complex-numbers/.meta/readme.go.tmpl +0 -17
  575. data/tracks/java/exercises/crypto-square/.meta/readme.go.tmpl +0 -17
  576. data/tracks/java/exercises/custom-set/.meta/readme.go.tmpl +0 -17
  577. data/tracks/java/exercises/diamond/.meta/readme.go.tmpl +0 -17
  578. data/tracks/java/exercises/difference-of-squares/.meta/readme.go.tmpl +0 -17
  579. data/tracks/java/exercises/etl/.meta/readme.go.tmpl +0 -17
  580. data/tracks/java/exercises/flatten-array/.meta/readme.go.tmpl +0 -17
  581. data/tracks/java/exercises/food-chain/.meta/readme.go.tmpl +0 -17
  582. data/tracks/java/exercises/gigasecond/.meta/readme.go.tmpl +0 -17
  583. data/tracks/java/exercises/grade-school/.meta/readme.go.tmpl +0 -17
  584. data/tracks/java/exercises/hamming/.meta/readme.go.tmpl +0 -17
  585. data/tracks/java/exercises/hello-world/.meta/readme.go.tmpl +0 -17
  586. data/tracks/java/exercises/hexadecimal/.meta/readme.go.tmpl +0 -17
  587. data/tracks/java/exercises/isogram/.meta/readme.go.tmpl +0 -17
  588. data/tracks/java/exercises/kindergarten-garden/.meta/readme.go.tmpl +0 -17
  589. data/tracks/java/exercises/largest-series-product/.meta/readme.go.tmpl +0 -17
  590. data/tracks/java/exercises/linked-list/.meta/readme.go.tmpl +0 -17
  591. data/tracks/java/exercises/list-ops/.meta/readme.go.tmpl +0 -17
  592. data/tracks/java/exercises/luhn/.meta/readme.go.tmpl +0 -17
  593. data/tracks/java/exercises/matrix/.meta/readme.go.tmpl +0 -17
  594. data/tracks/java/exercises/meetup/.meta/readme.go.tmpl +0 -17
  595. data/tracks/java/exercises/minesweeper/.meta/readme.go.tmpl +0 -17
  596. data/tracks/java/exercises/nth-prime/.meta/readme.go.tmpl +0 -17
  597. data/tracks/java/exercises/nucleotide-count/.meta/readme.go.tmpl +0 -17
  598. data/tracks/java/exercises/ocr-numbers/.meta/readme.go.tmpl +0 -17
  599. data/tracks/java/exercises/octal/.meta/readme.go.tmpl +0 -17
  600. data/tracks/java/exercises/palindrome-products/.meta/readme.go.tmpl +0 -17
  601. data/tracks/java/exercises/pangram/.meta/readme.go.tmpl +0 -17
  602. data/tracks/java/exercises/pascals-triangle/.meta/readme.go.tmpl +0 -17
  603. data/tracks/java/exercises/perfect-numbers/.meta/readme.go.tmpl +0 -17
  604. data/tracks/java/exercises/phone-number/.meta/readme.go.tmpl +0 -17
  605. data/tracks/java/exercises/pig-latin/.meta/readme.go.tmpl +0 -17
  606. data/tracks/java/exercises/poker/.meta/readme.go.tmpl +0 -17
  607. data/tracks/java/exercises/prime-factors/.meta/readme.go.tmpl +0 -17
  608. data/tracks/java/exercises/pythagorean-triplet/.meta/readme.go.tmpl +0 -17
  609. data/tracks/java/exercises/queen-attack/.meta/readme.go.tmpl +0 -17
  610. data/tracks/java/exercises/raindrops/.meta/readme.go.tmpl +0 -17
  611. data/tracks/java/exercises/rectangles/.meta/readme.go.tmpl +0 -17
  612. data/tracks/java/exercises/rna-transcription/.meta/readme.go.tmpl +0 -17
  613. data/tracks/java/exercises/robot-name/.meta/readme.go.tmpl +0 -17
  614. data/tracks/java/exercises/robot-simulator/.meta/readme.go.tmpl +0 -17
  615. data/tracks/java/exercises/roman-numerals/.meta/readme.go.tmpl +0 -17
  616. data/tracks/java/exercises/run-length-encoding/.meta/readme.go.tmpl +0 -17
  617. data/tracks/java/exercises/saddle-points/.meta/readme.go.tmpl +0 -17
  618. data/tracks/java/exercises/scrabble-score/.meta/readme.go.tmpl +0 -17
  619. data/tracks/java/exercises/secret-handshake/.meta/readme.go.tmpl +0 -17
  620. data/tracks/java/exercises/series/.meta/readme.go.tmpl +0 -17
  621. data/tracks/java/exercises/sieve/.meta/readme.go.tmpl +0 -17
  622. data/tracks/java/exercises/simple-cipher/.meta/readme.go.tmpl +0 -17
  623. data/tracks/java/exercises/simple-linked-list/.meta/readme.go.tmpl +0 -17
  624. data/tracks/java/exercises/space-age/.meta/readme.go.tmpl +0 -17
  625. data/tracks/java/exercises/spiral-matrix/.meta/readme.go.tmpl +0 -17
  626. data/tracks/java/exercises/strain/.meta/readme.go.tmpl +0 -17
  627. data/tracks/java/exercises/sublist/.meta/readme.go.tmpl +0 -17
  628. data/tracks/java/exercises/sum-of-multiples/.meta/readme.go.tmpl +0 -17
  629. data/tracks/java/exercises/transpose/.meta/readme.go.tmpl +0 -17
  630. data/tracks/java/exercises/triangle/.meta/readme.go.tmpl +0 -17
  631. data/tracks/java/exercises/trinary/.meta/readme.go.tmpl +0 -17
  632. data/tracks/java/exercises/twelve-days/.meta/readme.go.tmpl +0 -17
  633. data/tracks/java/exercises/two-fer/.meta/readme.go.tmpl +0 -17
  634. data/tracks/java/exercises/word-count/.meta/readme.go.tmpl +0 -17
  635. data/tracks/java/exercises/word-search/.meta/readme.go.tmpl +0 -17
  636. data/tracks/java/exercises/wordy/.meta/readme.go.tmpl +0 -17
@@ -0,0 +1,90 @@
1
+ # Robot Name
2
+
3
+ Manage robot factory settings.
4
+
5
+ When robots come off the factory floor, they have no name.
6
+
7
+ The first time you boot them up, a random name is generated in the format
8
+ of two uppercase letters followed by three digits, such as RX837 or BC811.
9
+
10
+ Every once in a while we need to reset a robot to its factory settings,
11
+ which means that their name gets wiped. The next time you ask, it will
12
+ respond with a new random name.
13
+
14
+ The names must be random: they should not follow a predictable sequence.
15
+ Random names means a risk of collisions. Your solution must ensure that
16
+ every existing robot has a unique name.
17
+
18
+ ## Hints
19
+
20
+ To complete this exercise, you need to create the data type `Robot`,
21
+ as a mutable variable, and implement the following functions:
22
+
23
+ - `mkRobot`
24
+ - `resetName`
25
+ - `robotName`
26
+
27
+ You will find a dummy data declaration and type signatures already in place,
28
+ but it is up to you to define the functions and create a meaningful data type,
29
+ newtype or type synonym.
30
+
31
+
32
+
33
+ ## Getting Started
34
+
35
+ For installation and learning resources, refer to the
36
+ [exercism help page](http://exercism.io/languages/haskell).
37
+
38
+ ## Running the tests
39
+
40
+ To run the test suite, execute the following command:
41
+
42
+ ```bash
43
+ stack test
44
+ ```
45
+
46
+ #### If you get an error message like this...
47
+
48
+ ```
49
+ No .cabal file found in directory
50
+ ```
51
+
52
+ You are probably running an old stack version and need
53
+ to upgrade it.
54
+
55
+ #### Otherwise, if you get an error message like this...
56
+
57
+ ```
58
+ No compiler found, expected minor version match with...
59
+ Try running "stack setup" to install the correct GHC...
60
+ ```
61
+
62
+ Just do as it says and it will download and install
63
+ the correct compiler version:
64
+
65
+ ```bash
66
+ stack setup
67
+ ```
68
+
69
+ ## Running *GHCi*
70
+
71
+ If you want to play with your solution in GHCi, just run the command:
72
+
73
+ ```bash
74
+ stack ghci
75
+ ```
76
+
77
+ ## Feedback, Issues, Pull Requests
78
+
79
+ The [exercism/haskell](https://github.com/exercism/haskell) repository on
80
+ GitHub is the home for all of the Haskell exercises.
81
+
82
+ If you have feedback about an exercise, or want to help implementing a new
83
+ one, head over there and create an issue. We'll do our best to help you!
84
+
85
+ ## Source
86
+
87
+ A debugging session with Paul Blackwell at gSchool. [http://gschool.it](http://gschool.it)
88
+
89
+ ## Submitting Incomplete Solutions
90
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,105 @@
1
+ # Robot Simulator
2
+
3
+ Write a robot simulator.
4
+
5
+ A robot factory's test facility needs a program to verify robot movements.
6
+
7
+ The robots have three possible movements:
8
+
9
+ - turn right
10
+ - turn left
11
+ - advance
12
+
13
+ Robots are placed on a hypothetical infinite grid, facing a particular
14
+ direction (north, east, south, or west) at a set of {x,y} coordinates,
15
+ e.g., {3,8}, with coordinates increasing to the north and east.
16
+
17
+ The robot then receives a number of instructions, at which point the
18
+ testing facility verifies the robot's new position, and in which
19
+ direction it is pointing.
20
+
21
+ - The letter-string "RAALAL" means:
22
+ - Turn right
23
+ - Advance twice
24
+ - Turn left
25
+ - Advance once
26
+ - Turn left yet again
27
+ - Say a robot starts at {7, 3} facing north. Then running this stream
28
+ of instructions should leave it at {9, 4} facing west.
29
+
30
+ ## Hints
31
+
32
+ To complete this exercise, you need to create the data type `Robot`,
33
+ and implement the following functions:
34
+
35
+ - `bearing`
36
+ - `coordinates`
37
+ - `mkRobot`
38
+ - `simulate`
39
+ - `turnLeft`
40
+ - `turnRight`
41
+
42
+ You will find a dummy data declaration and type signatures already in place,
43
+ but it is up to you to define the functions and create a meaningful data type,
44
+ newtype or type synonym.
45
+
46
+
47
+
48
+ ## Getting Started
49
+
50
+ For installation and learning resources, refer to the
51
+ [exercism help page](http://exercism.io/languages/haskell).
52
+
53
+ ## Running the tests
54
+
55
+ To run the test suite, execute the following command:
56
+
57
+ ```bash
58
+ stack test
59
+ ```
60
+
61
+ #### If you get an error message like this...
62
+
63
+ ```
64
+ No .cabal file found in directory
65
+ ```
66
+
67
+ You are probably running an old stack version and need
68
+ to upgrade it.
69
+
70
+ #### Otherwise, if you get an error message like this...
71
+
72
+ ```
73
+ No compiler found, expected minor version match with...
74
+ Try running "stack setup" to install the correct GHC...
75
+ ```
76
+
77
+ Just do as it says and it will download and install
78
+ the correct compiler version:
79
+
80
+ ```bash
81
+ stack setup
82
+ ```
83
+
84
+ ## Running *GHCi*
85
+
86
+ If you want to play with your solution in GHCi, just run the command:
87
+
88
+ ```bash
89
+ stack ghci
90
+ ```
91
+
92
+ ## Feedback, Issues, Pull Requests
93
+
94
+ The [exercism/haskell](https://github.com/exercism/haskell) repository on
95
+ GitHub is the home for all of the Haskell exercises.
96
+
97
+ If you have feedback about an exercise, or want to help implementing a new
98
+ one, head over there and create an issue. We'll do our best to help you!
99
+
100
+ ## Source
101
+
102
+ Inspired by an interview question at a famous company.
103
+
104
+ ## Submitting Incomplete Solutions
105
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,112 @@
1
+ # Roman Numerals
2
+
3
+ Write a function to convert from normal numbers to Roman Numerals.
4
+
5
+ The Romans were a clever bunch. They conquered most of Europe and ruled
6
+ it for hundreds of years. They invented concrete and straight roads and
7
+ even bikinis. One thing they never discovered though was the number
8
+ zero. This made writing and dating extensive histories of their exploits
9
+ slightly more challenging, but the system of numbers they came up with
10
+ is still in use today. For example the BBC uses Roman numerals to date
11
+ their programmes.
12
+
13
+ The Romans wrote numbers using letters - I, V, X, L, C, D, M. (notice
14
+ these letters have lots of straight lines and are hence easy to hack
15
+ into stone tablets).
16
+
17
+ ```
18
+ 1 => I
19
+ 10 => X
20
+ 7 => VII
21
+ ```
22
+
23
+ There is no need to be able to convert numbers larger than about 3000.
24
+ (The Romans themselves didn't tend to go any higher)
25
+
26
+ Wikipedia says: Modern Roman numerals ... are written by expressing each
27
+ digit separately starting with the left most digit and skipping any
28
+ digit with a value of zero.
29
+
30
+ To see this in practice, consider the example of 1990.
31
+
32
+ In Roman numerals 1990 is MCMXC:
33
+
34
+ 1000=M
35
+ 900=CM
36
+ 90=XC
37
+
38
+ 2008 is written as MMVIII:
39
+
40
+ 2000=MM
41
+ 8=VIII
42
+
43
+ See also: http://www.novaroma.org/via_romana/numbers.html
44
+
45
+ ## Hints
46
+
47
+ To complete this exercise you need to implement the function `numerals`,
48
+ that *maybe* converts a number to a *string* representing a roman numeral.
49
+
50
+ Your function is expected to, at least, convert numbers up to 3000,
51
+ but is up to you to decide how far you want to go.
52
+
53
+
54
+
55
+ ## Getting Started
56
+
57
+ For installation and learning resources, refer to the
58
+ [exercism help page](http://exercism.io/languages/haskell).
59
+
60
+ ## Running the tests
61
+
62
+ To run the test suite, execute the following command:
63
+
64
+ ```bash
65
+ stack test
66
+ ```
67
+
68
+ #### If you get an error message like this...
69
+
70
+ ```
71
+ No .cabal file found in directory
72
+ ```
73
+
74
+ You are probably running an old stack version and need
75
+ to upgrade it.
76
+
77
+ #### Otherwise, if you get an error message like this...
78
+
79
+ ```
80
+ No compiler found, expected minor version match with...
81
+ Try running "stack setup" to install the correct GHC...
82
+ ```
83
+
84
+ Just do as it says and it will download and install
85
+ the correct compiler version:
86
+
87
+ ```bash
88
+ stack setup
89
+ ```
90
+
91
+ ## Running *GHCi*
92
+
93
+ If you want to play with your solution in GHCi, just run the command:
94
+
95
+ ```bash
96
+ stack ghci
97
+ ```
98
+
99
+ ## Feedback, Issues, Pull Requests
100
+
101
+ The [exercism/haskell](https://github.com/exercism/haskell) repository on
102
+ GitHub is the home for all of the Haskell exercises.
103
+
104
+ If you have feedback about an exercise, or want to help implementing a new
105
+ one, head over there and create an issue. We'll do our best to help you!
106
+
107
+ ## Source
108
+
109
+ The Roman Numeral Kata [http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals](http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals)
110
+
111
+ ## Submitting Incomplete Solutions
112
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,84 @@
1
+ # Run Length Encoding
2
+
3
+ Implement run-length encoding and decoding.
4
+
5
+ Run-length encoding (RLE) is a simple form of data compression, where runs
6
+ (consecutive data elements) are replaced by just one data value and count.
7
+
8
+ For example we can represent the original 53 characters with only 13.
9
+
10
+ ```
11
+ "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" -> "12WB12W3B24WB"
12
+ ```
13
+
14
+ RLE allows the original data to be perfectly reconstructed from
15
+ the compressed data, which makes it a lossless data compression.
16
+
17
+ ```
18
+ "AABCCCDEEEE" -> "2AB3CD4E" -> "AABCCCDEEEE"
19
+ ```
20
+
21
+ For simplicity, you can assume that the unencoded string will only contain
22
+ the letters A through Z (either lower or upper case) and whitespace. This way
23
+ data to be encoded will never contain any numbers and numbers inside data to
24
+ be decoded always represent the count for the following character.
25
+
26
+
27
+ ## Getting Started
28
+
29
+ For installation and learning resources, refer to the
30
+ [exercism help page](http://exercism.io/languages/haskell).
31
+
32
+ ## Running the tests
33
+
34
+ To run the test suite, execute the following command:
35
+
36
+ ```bash
37
+ stack test
38
+ ```
39
+
40
+ #### If you get an error message like this...
41
+
42
+ ```
43
+ No .cabal file found in directory
44
+ ```
45
+
46
+ You are probably running an old stack version and need
47
+ to upgrade it.
48
+
49
+ #### Otherwise, if you get an error message like this...
50
+
51
+ ```
52
+ No compiler found, expected minor version match with...
53
+ Try running "stack setup" to install the correct GHC...
54
+ ```
55
+
56
+ Just do as it says and it will download and install
57
+ the correct compiler version:
58
+
59
+ ```bash
60
+ stack setup
61
+ ```
62
+
63
+ ## Running *GHCi*
64
+
65
+ If you want to play with your solution in GHCi, just run the command:
66
+
67
+ ```bash
68
+ stack ghci
69
+ ```
70
+
71
+ ## Feedback, Issues, Pull Requests
72
+
73
+ The [exercism/haskell](https://github.com/exercism/haskell) repository on
74
+ GitHub is the home for all of the Haskell exercises.
75
+
76
+ If you have feedback about an exercise, or want to help implementing a new
77
+ one, head over there and create an issue. We'll do our best to help you!
78
+
79
+ ## Source
80
+
81
+ Wikipedia [https://en.wikipedia.org/wiki/Run-length_encoding](https://en.wikipedia.org/wiki/Run-length_encoding)
82
+
83
+ ## Submitting Incomplete Solutions
84
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,87 @@
1
+ # Saddle Points
2
+
3
+ Detect saddle points in a matrix.
4
+
5
+ So say you have a matrix like so:
6
+
7
+ ```plain
8
+ 0 1 2
9
+ |---------
10
+ 0 | 9 8 7
11
+ 1 | 5 3 2 <--- saddle point at (1,0)
12
+ 2 | 6 6 7
13
+ ```
14
+
15
+ It has a saddle point at (1, 0).
16
+
17
+ It's called a "saddle point" because it is greater than or equal to
18
+ every element in its row and the less than or equal to every element in
19
+ its column.
20
+
21
+ A matrix may have zero or more saddle points.
22
+
23
+ Your code should be able to provide the (possibly empty) list of all the
24
+ saddle points for any given matrix.
25
+
26
+ Note that you may find other definitions of matrix saddle points online,
27
+ but the tests for this exercise follow the above unambiguous definition.
28
+
29
+
30
+ ## Getting Started
31
+
32
+ For installation and learning resources, refer to the
33
+ [exercism help page](http://exercism.io/languages/haskell).
34
+
35
+ ## Running the tests
36
+
37
+ To run the test suite, execute the following command:
38
+
39
+ ```bash
40
+ stack test
41
+ ```
42
+
43
+ #### If you get an error message like this...
44
+
45
+ ```
46
+ No .cabal file found in directory
47
+ ```
48
+
49
+ You are probably running an old stack version and need
50
+ to upgrade it.
51
+
52
+ #### Otherwise, if you get an error message like this...
53
+
54
+ ```
55
+ No compiler found, expected minor version match with...
56
+ Try running "stack setup" to install the correct GHC...
57
+ ```
58
+
59
+ Just do as it says and it will download and install
60
+ the correct compiler version:
61
+
62
+ ```bash
63
+ stack setup
64
+ ```
65
+
66
+ ## Running *GHCi*
67
+
68
+ If you want to play with your solution in GHCi, just run the command:
69
+
70
+ ```bash
71
+ stack ghci
72
+ ```
73
+
74
+ ## Feedback, Issues, Pull Requests
75
+
76
+ The [exercism/haskell](https://github.com/exercism/haskell) repository on
77
+ GitHub is the home for all of the Haskell exercises.
78
+
79
+ If you have feedback about an exercise, or want to help implementing a new
80
+ one, head over there and create an issue. We'll do our best to help you!
81
+
82
+ ## Source
83
+
84
+ J Dalbey's Programming Practice problems [http://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html](http://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html)
85
+
86
+ ## Submitting Incomplete Solutions
87
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,123 @@
1
+ # Say
2
+
3
+ Given a number from 0 to 999,999,999,999, spell out that number in English.
4
+
5
+ ## Step 1
6
+
7
+ Handle the basic case of 0 through 99.
8
+
9
+ If the input to the program is `22`, then the output should be
10
+ `'twenty-two'`.
11
+
12
+ Your program should complain loudly if given a number outside the
13
+ blessed range.
14
+
15
+ Some good test cases for this program are:
16
+
17
+ - 0
18
+ - 14
19
+ - 50
20
+ - 98
21
+ - -1
22
+ - 100
23
+
24
+ ### Extension
25
+
26
+ If you're on a Mac, shell out to Mac OS X's `say` program to talk out
27
+ loud.
28
+
29
+ ## Step 2
30
+
31
+ Implement breaking a number up into chunks of thousands.
32
+
33
+ So `1234567890` should yield a list like 1, 234, 567, and 890, while the
34
+ far simpler `1000` should yield just 1 and 0.
35
+
36
+ The program must also report any values that are out of range.
37
+
38
+ ## Step 3
39
+
40
+ Now handle inserting the appropriate scale word between those chunks.
41
+
42
+ So `1234567890` should yield `'1 billion 234 million 567 thousand 890'`
43
+
44
+ The program must also report any values that are out of range. It's
45
+ fine to stop at "trillion".
46
+
47
+ ## Step 4
48
+
49
+ Put it all together to get nothing but plain English.
50
+
51
+ `12345` should give `twelve thousand three hundred forty-five`.
52
+
53
+ The program must also report any values that are out of range.
54
+
55
+ ### Extensions
56
+
57
+ Use _and_ (correctly) when spelling out the number in English:
58
+
59
+ - 14 becomes "fourteen".
60
+ - 100 becomes "one hundred".
61
+ - 120 becomes "one hundred and twenty".
62
+ - 1002 becomes "one thousand and two".
63
+ - 1323 becomes "one thousand three hundred and twenty-three".
64
+
65
+
66
+ ## Getting Started
67
+
68
+ For installation and learning resources, refer to the
69
+ [exercism help page](http://exercism.io/languages/haskell).
70
+
71
+ ## Running the tests
72
+
73
+ To run the test suite, execute the following command:
74
+
75
+ ```bash
76
+ stack test
77
+ ```
78
+
79
+ #### If you get an error message like this...
80
+
81
+ ```
82
+ No .cabal file found in directory
83
+ ```
84
+
85
+ You are probably running an old stack version and need
86
+ to upgrade it.
87
+
88
+ #### Otherwise, if you get an error message like this...
89
+
90
+ ```
91
+ No compiler found, expected minor version match with...
92
+ Try running "stack setup" to install the correct GHC...
93
+ ```
94
+
95
+ Just do as it says and it will download and install
96
+ the correct compiler version:
97
+
98
+ ```bash
99
+ stack setup
100
+ ```
101
+
102
+ ## Running *GHCi*
103
+
104
+ If you want to play with your solution in GHCi, just run the command:
105
+
106
+ ```bash
107
+ stack ghci
108
+ ```
109
+
110
+ ## Feedback, Issues, Pull Requests
111
+
112
+ The [exercism/haskell](https://github.com/exercism/haskell) repository on
113
+ GitHub is the home for all of the Haskell exercises.
114
+
115
+ If you have feedback about an exercise, or want to help implementing a new
116
+ one, head over there and create an issue. We'll do our best to help you!
117
+
118
+ ## Source
119
+
120
+ A variation on JavaRanch CattleDrive, exercise 4a [http://www.javaranch.com/say.jsp](http://www.javaranch.com/say.jsp)
121
+
122
+ ## Submitting Incomplete Solutions
123
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,98 @@
1
+ # Scrabble Score
2
+
3
+ Given a word, compute the scrabble score for that word.
4
+
5
+ ## Letter Values
6
+
7
+ You'll need these:
8
+
9
+ ```plain
10
+ Letter Value
11
+ A, E, I, O, U, L, N, R, S, T 1
12
+ D, G 2
13
+ B, C, M, P 3
14
+ F, H, V, W, Y 4
15
+ K 5
16
+ J, X 8
17
+ Q, Z 10
18
+ ```
19
+
20
+ ## Examples
21
+ "cabbage" should be scored as worth 14 points:
22
+
23
+ - 3 points for C
24
+ - 1 point for A, twice
25
+ - 3 points for B, twice
26
+ - 2 points for G
27
+ - 1 point for E
28
+
29
+ And to total:
30
+
31
+ - `3 + 2*1 + 2*3 + 2 + 1`
32
+ - = `3 + 2 + 6 + 3`
33
+ - = `5 + 9`
34
+ - = 14
35
+
36
+ ## Extensions
37
+ - You can play a double or a triple letter.
38
+ - You can play a double or a triple word.
39
+
40
+
41
+ ## Getting Started
42
+
43
+ For installation and learning resources, refer to the
44
+ [exercism help page](http://exercism.io/languages/haskell).
45
+
46
+ ## Running the tests
47
+
48
+ To run the test suite, execute the following command:
49
+
50
+ ```bash
51
+ stack test
52
+ ```
53
+
54
+ #### If you get an error message like this...
55
+
56
+ ```
57
+ No .cabal file found in directory
58
+ ```
59
+
60
+ You are probably running an old stack version and need
61
+ to upgrade it.
62
+
63
+ #### Otherwise, if you get an error message like this...
64
+
65
+ ```
66
+ No compiler found, expected minor version match with...
67
+ Try running "stack setup" to install the correct GHC...
68
+ ```
69
+
70
+ Just do as it says and it will download and install
71
+ the correct compiler version:
72
+
73
+ ```bash
74
+ stack setup
75
+ ```
76
+
77
+ ## Running *GHCi*
78
+
79
+ If you want to play with your solution in GHCi, just run the command:
80
+
81
+ ```bash
82
+ stack ghci
83
+ ```
84
+
85
+ ## Feedback, Issues, Pull Requests
86
+
87
+ The [exercism/haskell](https://github.com/exercism/haskell) repository on
88
+ GitHub is the home for all of the Haskell exercises.
89
+
90
+ If you have feedback about an exercise, or want to help implementing a new
91
+ one, head over there and create an issue. We'll do our best to help you!
92
+
93
+ ## Source
94
+
95
+ Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
96
+
97
+ ## Submitting Incomplete Solutions
98
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.