trackler 2.2.1.4 → 2.2.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/bash/config.json +10 -0
  4. data/tracks/bash/exercises/error-handling/error_handling_test.sh +31 -0
  5. data/tracks/bash/exercises/error-handling/example.sh +9 -0
  6. data/tracks/ceylon/config/maintainers.json +25 -0
  7. data/tracks/chapel/README.md +1 -1
  8. data/tracks/chapel/config/exercise_readme.go.tmpl +16 -0
  9. data/tracks/chapel/config/maintainers.json +5 -0
  10. data/tracks/chapel/config.json +0 -5
  11. data/tracks/coffeescript/config/exercise_readme.go.tmpl +16 -0
  12. data/tracks/coffeescript/config.json +84 -26
  13. data/tracks/coffeescript/exercises/accumulate/README.md +43 -0
  14. data/tracks/coffeescript/exercises/anagram/README.md +21 -0
  15. data/tracks/coffeescript/exercises/atbash-cipher/README.md +42 -0
  16. data/tracks/coffeescript/exercises/beer-song/README.md +335 -0
  17. data/tracks/coffeescript/exercises/binary/README.md +43 -0
  18. data/tracks/coffeescript/exercises/binary-search-tree/README.md +68 -0
  19. data/tracks/coffeescript/exercises/bob/README.md +26 -0
  20. data/tracks/coffeescript/exercises/clock/README.md +21 -0
  21. data/tracks/coffeescript/exercises/hello-world/README.md +29 -0
  22. data/tracks/coffeescript/exercises/hexadecimal/README.md +22 -0
  23. data/tracks/coffeescript/exercises/linked-list/README.md +42 -0
  24. data/tracks/coffeescript/exercises/luhn/README.md +79 -0
  25. data/tracks/coffeescript/exercises/nth-prime/README.md +23 -0
  26. data/tracks/coffeescript/exercises/nucleotide-count/README.md +41 -0
  27. data/tracks/coffeescript/exercises/palindrome-products/README.md +48 -0
  28. data/tracks/coffeescript/exercises/pascals-triangle/README.md +29 -0
  29. data/tracks/coffeescript/exercises/queen-attack/README.md +41 -0
  30. data/tracks/coffeescript/exercises/triangle/README.md +34 -0
  31. data/tracks/coffeescript/exercises/trinary/README.md +36 -0
  32. data/tracks/coffeescript/exercises/word-count/README.md +27 -0
  33. data/tracks/coffeescript/exercises/wordy/README.md +71 -0
  34. data/tracks/coldfusion/config/exercise_readme.go.tmpl +16 -0
  35. data/tracks/coldfusion/config.json +4 -6
  36. data/tracks/coldfusion/exercises/leap/README.md +33 -0
  37. data/tracks/coq/README.md +19 -32
  38. data/tracks/coq/config/exercise_readme.go.tmpl +16 -0
  39. data/tracks/coq/config.json +9 -5
  40. data/tracks/coq/exercises/hello-world/README.md +45 -0
  41. data/tracks/coq/exercises/rna-transcription/README.md +49 -0
  42. data/tracks/coq/exercises/tautology/README.md +33 -0
  43. data/tracks/cpp/config/exercise_readme.go.tmpl +16 -0
  44. data/tracks/cpp/config.json +144 -41
  45. data/tracks/cpp/exercises/allergies/README.md +69 -0
  46. data/tracks/cpp/exercises/anagram/README.md +45 -0
  47. data/tracks/cpp/exercises/atbash-cipher/README.md +66 -0
  48. data/tracks/cpp/exercises/beer-song/README.md +359 -0
  49. data/tracks/cpp/exercises/binary/README.md +67 -0
  50. data/tracks/cpp/exercises/bob/README.md +50 -0
  51. data/tracks/cpp/exercises/clock/README.md +45 -0
  52. data/tracks/cpp/exercises/crypto-square/README.md +106 -0
  53. data/tracks/cpp/exercises/difference-of-squares/README.md +51 -0
  54. data/tracks/cpp/exercises/etl/README.md +83 -0
  55. data/tracks/cpp/exercises/food-chain/README.md +102 -0
  56. data/tracks/cpp/exercises/gigasecond/README.md +43 -0
  57. data/tracks/cpp/exercises/grade-school/README.md +74 -0
  58. data/tracks/cpp/exercises/grains/README.md +66 -0
  59. data/tracks/cpp/exercises/hamming/README.md +74 -0
  60. data/tracks/cpp/exercises/hello-world/README.md +53 -0
  61. data/tracks/cpp/exercises/hexadecimal/README.md +46 -0
  62. data/tracks/cpp/exercises/leap/README.md +65 -0
  63. data/tracks/cpp/exercises/meetup/README.md +62 -0
  64. data/tracks/cpp/exercises/nth-prime/README.md +47 -0
  65. data/tracks/cpp/exercises/nucleotide-count/README.md +65 -0
  66. data/tracks/cpp/exercises/phone-number/README.md +66 -0
  67. data/tracks/cpp/exercises/prime-factors/README.md +68 -0
  68. data/tracks/cpp/exercises/queen-attack/README.md +65 -0
  69. data/tracks/cpp/exercises/raindrops/README.md +56 -0
  70. data/tracks/cpp/exercises/rna-transcription/README.md +57 -0
  71. data/tracks/cpp/exercises/robot-name/README.md +54 -0
  72. data/tracks/cpp/exercises/roman-numerals/README.md +81 -0
  73. data/tracks/cpp/exercises/say/README.md +101 -0
  74. data/tracks/cpp/exercises/scrabble-score/README.md +76 -0
  75. data/tracks/cpp/exercises/series/README.md +59 -0
  76. data/tracks/cpp/exercises/sieve/README.md +66 -0
  77. data/tracks/cpp/exercises/space-age/README.md +56 -0
  78. data/tracks/cpp/exercises/sum-of-multiples/README.md +50 -0
  79. data/tracks/cpp/exercises/triangle/README.md +58 -0
  80. data/tracks/cpp/exercises/trinary/README.md +60 -0
  81. data/tracks/cpp/exercises/word-count/README.md +51 -0
  82. data/tracks/crystal/config.json +69 -3
  83. data/tracks/d/config/exercise_readme.go.tmpl +16 -0
  84. data/tracks/d/config.json +54 -3
  85. data/tracks/d/exercises/bob/README.md +49 -0
  86. data/tracks/d/exercises/circular-buffer/README.md +81 -0
  87. data/tracks/d/exercises/crypto-square/README.md +105 -0
  88. data/tracks/d/exercises/difference-of-squares/README.md +50 -0
  89. data/tracks/d/exercises/etl/README.md +82 -0
  90. data/tracks/d/exercises/gigasecond/README.md +42 -0
  91. data/tracks/d/exercises/hamming/README.md +73 -0
  92. data/tracks/d/exercises/hello-world/README.md +52 -0
  93. data/tracks/d/exercises/leap/README.md +64 -0
  94. data/tracks/d/exercises/nucleotide-count/README.md +64 -0
  95. data/tracks/d/exercises/pangram/README.md +46 -0
  96. data/tracks/d/exercises/raindrops/README.md +55 -0
  97. data/tracks/d/exercises/react/README.md +50 -0
  98. data/tracks/d/exercises/rna-transcription/README.md +56 -0
  99. data/tracks/d/exercises/robot-name/README.md +53 -0
  100. data/tracks/d/exercises/roman-numerals/README.md +80 -0
  101. data/tracks/d/exercises/series/README.md +58 -0
  102. data/tracks/d/exercises/triangle/README.md +57 -0
  103. data/tracks/delphi/config/maintainers.json +25 -0
  104. data/tracks/ecmascript/config/maintainers.json +35 -0
  105. data/tracks/elisp/config/exercise_readme.go.tmpl +16 -0
  106. data/tracks/elisp/config.json +79 -22
  107. data/tracks/elisp/exercises/allergies/README.md +37 -0
  108. data/tracks/elisp/exercises/anagram/README.md +13 -0
  109. data/tracks/elisp/exercises/atbash-cipher/README.md +34 -0
  110. data/tracks/elisp/exercises/binary/README.md +35 -0
  111. data/tracks/elisp/exercises/bob/README.md +18 -0
  112. data/tracks/elisp/exercises/difference-of-squares/README.md +19 -0
  113. data/tracks/elisp/exercises/etl/README.md +51 -0
  114. data/tracks/elisp/exercises/gigasecond/README.md +11 -0
  115. data/tracks/elisp/exercises/grains/README.md +34 -0
  116. data/tracks/elisp/exercises/hamming/README.md +42 -0
  117. data/tracks/elisp/exercises/hello-world/README.md +21 -0
  118. data/tracks/elisp/exercises/leap/README.md +33 -0
  119. data/tracks/elisp/exercises/nucleotide-count/README.md +33 -0
  120. data/tracks/elisp/exercises/perfect-numbers/README.md +24 -0
  121. data/tracks/elisp/exercises/phone-number/README.md +34 -0
  122. data/tracks/elisp/exercises/raindrops/README.md +24 -0
  123. data/tracks/elisp/exercises/rna-transcription/README.md +25 -0
  124. data/tracks/elisp/exercises/robot-name/README.md +22 -0
  125. data/tracks/elisp/exercises/roman-numerals/README.md +49 -0
  126. data/tracks/elisp/exercises/word-count/README.md +19 -0
  127. data/tracks/elixir/config/maintainers.json +35 -0
  128. data/tracks/elm/config/exercise_readme.go.tmpl +16 -0
  129. data/tracks/elm/config.json +96 -5
  130. data/tracks/elm/exercises/accumulate/README.md +65 -0
  131. data/tracks/elm/exercises/allergies/README.md +67 -0
  132. data/tracks/elm/exercises/anagram/README.md +43 -0
  133. data/tracks/elm/exercises/atbash-cipher/README.md +64 -0
  134. data/tracks/elm/exercises/bob/README.md +48 -0
  135. data/tracks/elm/exercises/difference-of-squares/README.md +49 -0
  136. data/tracks/elm/exercises/etl/README.md +81 -0
  137. data/tracks/elm/exercises/gigasecond/README.md +41 -0
  138. data/tracks/elm/exercises/grade-school/README.md +72 -0
  139. data/tracks/elm/exercises/grains/README.md +64 -0
  140. data/tracks/elm/exercises/hamming/README.md +72 -0
  141. data/tracks/elm/exercises/hello-world/README.md +51 -0
  142. data/tracks/elm/exercises/largest-series-product/README.md +50 -0
  143. data/tracks/elm/exercises/leap/README.md +63 -0
  144. data/tracks/elm/exercises/list-ops/README.md +40 -0
  145. data/tracks/elm/exercises/nucleotide-count/README.md +63 -0
  146. data/tracks/elm/exercises/pangram/README.md +45 -0
  147. data/tracks/elm/exercises/phone-number/README.md +64 -0
  148. data/tracks/elm/exercises/raindrops/README.md +54 -0
  149. data/tracks/elm/exercises/rna-transcription/README.md +55 -0
  150. data/tracks/elm/exercises/robot-simulator/README.md +64 -0
  151. data/tracks/elm/exercises/roman-numerals/README.md +79 -0
  152. data/tracks/elm/exercises/run-length-encoding/README.md +60 -0
  153. data/tracks/elm/exercises/say/README.md +99 -0
  154. data/tracks/elm/exercises/scrabble-score/README.md +74 -0
  155. data/tracks/elm/exercises/series/README.md +57 -0
  156. data/tracks/elm/exercises/space-age/README.md +54 -0
  157. data/tracks/elm/exercises/strain/README.md +70 -0
  158. data/tracks/elm/exercises/sublist/README.md +51 -0
  159. data/tracks/elm/exercises/sum-of-multiples/README.md +48 -0
  160. data/tracks/elm/exercises/triangle/README.md +56 -0
  161. data/tracks/elm/exercises/word-count/README.md +49 -0
  162. data/tracks/fortran/config/exercise_readme.go.tmpl +16 -0
  163. data/tracks/fortran/config.json +21 -5
  164. data/tracks/fortran/exercises/bob/README.md +18 -0
  165. data/tracks/fortran/exercises/difference-of-squares/README.md +19 -0
  166. data/tracks/fortran/exercises/hamming/README.md +42 -0
  167. data/tracks/fortran/exercises/hello-world/README.md +21 -0
  168. data/tracks/fortran/exercises/pangram/README.md +15 -0
  169. data/tracks/fortran/exercises/raindrops/README.md +24 -0
  170. data/tracks/fortran/exercises/rna-transcription/README.md +25 -0
  171. data/tracks/go/config/maintainers.json +85 -0
  172. data/tracks/go/config.json +2 -2
  173. data/tracks/groovy/config/exercise_readme.go.tmpl +16 -0
  174. data/tracks/groovy/exercises/difference-of-squares/README.md +33 -0
  175. data/tracks/groovy/exercises/gigasecond/README.md +25 -0
  176. data/tracks/groovy/exercises/grains/README.md +48 -0
  177. data/tracks/groovy/exercises/hamming/README.md +56 -0
  178. data/tracks/groovy/exercises/hello-world/README.md +35 -0
  179. data/tracks/groovy/exercises/leap/README.md +47 -0
  180. data/tracks/groovy/exercises/nth-prime/README.md +29 -0
  181. data/tracks/groovy/exercises/phone-number/README.md +48 -0
  182. data/tracks/groovy/exercises/raindrops/README.md +38 -0
  183. data/tracks/groovy/exercises/rna-transcription/README.md +39 -0
  184. data/tracks/groovy/exercises/robot-name/README.md +36 -0
  185. data/tracks/groovy/exercises/roman-numerals/README.md +63 -0
  186. data/tracks/groovy/exercises/word-count/README.md +33 -0
  187. data/tracks/haxe/config/exercise_readme.go.tmpl +16 -0
  188. data/tracks/haxe/config.json +0 -2
  189. data/tracks/haxe/exercises/bob/README.md +18 -0
  190. data/tracks/haxe/exercises/hello-world/README.md +21 -0
  191. data/tracks/idris/config/exercise_readme.go.tmpl +16 -0
  192. data/tracks/idris/config.json +9 -3
  193. data/tracks/idris/exercises/hamming/README.md +42 -0
  194. data/tracks/idris/exercises/hello-world/README.md +21 -0
  195. data/tracks/idris/exercises/leap/README.md +33 -0
  196. data/tracks/java/config/maintainers.json +45 -0
  197. data/tracks/java/exercises/hello-world/TUTORIAL.md +1 -1
  198. data/tracks/javascript/config/maintainers.json +85 -0
  199. data/tracks/julia/config/exercise_readme.go.tmpl +16 -0
  200. data/tracks/julia/config.json +81 -5
  201. data/tracks/julia/exercises/anagram/README.md +13 -0
  202. data/tracks/julia/exercises/atbash-cipher/README.md +34 -0
  203. data/tracks/julia/exercises/bob/README.md +18 -0
  204. data/tracks/julia/exercises/complex-numbers/README.md +24 -0
  205. data/tracks/julia/exercises/custom-set/README.md +16 -0
  206. data/tracks/julia/exercises/difference-of-squares/README.md +19 -0
  207. data/tracks/julia/exercises/etl/README.md +51 -0
  208. data/tracks/julia/exercises/gigasecond/README.md +11 -0
  209. data/tracks/julia/exercises/hamming/README.md +42 -0
  210. data/tracks/julia/exercises/hello-world/README.md +21 -0
  211. data/tracks/julia/exercises/isogram/README.md +19 -0
  212. data/tracks/julia/exercises/leap/README.md +33 -0
  213. data/tracks/julia/exercises/luhn/README.md +71 -0
  214. data/tracks/julia/exercises/nucleotide-count/README.md +33 -0
  215. data/tracks/julia/exercises/pangram/README.md +15 -0
  216. data/tracks/julia/exercises/pascals-triangle/README.md +21 -0
  217. data/tracks/julia/exercises/raindrops/README.md +24 -0
  218. data/tracks/julia/exercises/rna-transcription/README.md +25 -0
  219. data/tracks/julia/exercises/robot-name/README.md +41 -0
  220. data/tracks/julia/exercises/roman-numerals/README.md +49 -0
  221. data/tracks/julia/exercises/rotational-cipher/README.md +59 -0
  222. data/tracks/julia/exercises/scrabble-score/README.md +44 -0
  223. data/tracks/julia/exercises/secret-handshake/README.md +35 -0
  224. data/tracks/julia/exercises/sieve/README.md +34 -0
  225. data/tracks/julia/exercises/transpose/README.md +65 -0
  226. data/tracks/julia/exercises/trinary/README.md +28 -0
  227. data/tracks/julia/exercises/word-count/README.md +19 -0
  228. data/tracks/lfe/config/exercise_readme.go.tmpl +16 -0
  229. data/tracks/lfe/config.json +125 -33
  230. data/tracks/lfe/exercises/accumulate/README.md +51 -0
  231. data/tracks/lfe/exercises/allergies/README.md +53 -0
  232. data/tracks/lfe/exercises/anagram/README.md +29 -0
  233. data/tracks/lfe/exercises/atbash-cipher/README.md +50 -0
  234. data/tracks/lfe/exercises/bank-account/README.md +46 -0
  235. data/tracks/lfe/exercises/beer-song/README.md +343 -0
  236. data/tracks/lfe/exercises/binary/README.md +51 -0
  237. data/tracks/lfe/exercises/bob/README.md +34 -0
  238. data/tracks/lfe/exercises/circular-buffer/README.md +66 -0
  239. data/tracks/lfe/exercises/clock/README.md +29 -0
  240. data/tracks/lfe/exercises/difference-of-squares/README.md +35 -0
  241. data/tracks/lfe/exercises/etl/README.md +67 -0
  242. data/tracks/lfe/exercises/gigasecond/README.md +27 -0
  243. data/tracks/lfe/exercises/grade-school/README.md +58 -0
  244. data/tracks/lfe/exercises/grains/README.md +50 -0
  245. data/tracks/lfe/exercises/hamming/README.md +58 -0
  246. data/tracks/lfe/exercises/largest-series-product/README.md +36 -0
  247. data/tracks/lfe/exercises/leap/README.md +49 -0
  248. data/tracks/lfe/exercises/luhn/README.md +87 -0
  249. data/tracks/lfe/exercises/meetup/README.md +46 -0
  250. data/tracks/lfe/exercises/nucleotide-count/README.md +49 -0
  251. data/tracks/lfe/exercises/parallel-letter-frequency/README.md +27 -0
  252. data/tracks/lfe/exercises/phone-number/README.md +50 -0
  253. data/tracks/lfe/exercises/rna-transcription/README.md +41 -0
  254. data/tracks/lfe/exercises/robot-simulator/README.md +50 -0
  255. data/tracks/lfe/exercises/series/README.md +43 -0
  256. data/tracks/lfe/exercises/space-age/README.md +40 -0
  257. data/tracks/lfe/exercises/strain/README.md +56 -0
  258. data/tracks/lfe/exercises/sum-of-multiples/README.md +34 -0
  259. data/tracks/lfe/exercises/trinary/README.md +44 -0
  260. data/tracks/lfe/exercises/word-count/README.md +35 -0
  261. data/tracks/lua/config/maintainers.json +35 -0
  262. data/tracks/lua/config.json +225 -3
  263. data/tracks/nasm/config/exercise_readme.go.tmpl +16 -0
  264. data/tracks/nasm/config.json +0 -5
  265. data/tracks/nim/config/exercise_readme.go.tmpl +16 -0
  266. data/tracks/nim/config.json +56 -19
  267. data/tracks/nim/exercises/anagram/README.md +13 -0
  268. data/tracks/nim/exercises/binary/README.md +35 -0
  269. data/tracks/nim/exercises/bob/README.md +18 -0
  270. data/tracks/nim/exercises/difference-of-squares/README.md +19 -0
  271. data/tracks/nim/exercises/hamming/README.md +42 -0
  272. data/tracks/nim/exercises/hello-world/README.md +21 -0
  273. data/tracks/nim/exercises/leap/README.md +33 -0
  274. data/tracks/nim/exercises/nucleotide-count/README.md +33 -0
  275. data/tracks/nim/exercises/queen-attack/README.md +33 -0
  276. data/tracks/nim/exercises/raindrops/README.md +24 -0
  277. data/tracks/nim/exercises/react/README.md +19 -0
  278. data/tracks/nim/exercises/rna-transcription/README.md +25 -0
  279. data/tracks/nim/exercises/triangle/README.md +26 -0
  280. data/tracks/nim/exercises/word-count/README.md +19 -0
  281. data/tracks/objective-c/config/exercise_readme.go.tmpl +16 -0
  282. data/tracks/objective-c/config/maintainers.json +35 -0
  283. data/tracks/objective-c/config.json +168 -47
  284. data/tracks/objective-c/exercises/acronym/README.md +32 -0
  285. data/tracks/objective-c/exercises/all-your-base/README.md +52 -0
  286. data/tracks/objective-c/exercises/allergies/README.md +54 -0
  287. data/tracks/objective-c/exercises/anagram/README.md +30 -0
  288. data/tracks/objective-c/exercises/atbash-cipher/README.md +51 -0
  289. data/tracks/objective-c/exercises/beer-song/README.md +344 -0
  290. data/tracks/objective-c/exercises/binary-search/README.md +58 -0
  291. data/tracks/objective-c/exercises/bob/README.md +35 -0
  292. data/tracks/objective-c/exercises/bracket-push/README.md +27 -0
  293. data/tracks/objective-c/exercises/clock/README.md +30 -0
  294. data/tracks/objective-c/exercises/crypto-square/README.md +91 -0
  295. data/tracks/objective-c/exercises/difference-of-squares/README.md +36 -0
  296. data/tracks/objective-c/exercises/etl/README.md +68 -0
  297. data/tracks/objective-c/exercises/flatten-array/README.md +35 -0
  298. data/tracks/objective-c/exercises/gigasecond/README.md +28 -0
  299. data/tracks/objective-c/exercises/grade-school/README.md +59 -0
  300. data/tracks/objective-c/exercises/hamming/README.md +59 -0
  301. data/tracks/objective-c/exercises/hello-world/README.md +38 -0
  302. data/tracks/objective-c/exercises/isogram/README.md +36 -0
  303. data/tracks/objective-c/exercises/largest-series-product/README.md +37 -0
  304. data/tracks/objective-c/exercises/leap/README.md +50 -0
  305. data/tracks/objective-c/exercises/luhn/README.md +88 -0
  306. data/tracks/objective-c/exercises/meetup/README.md +47 -0
  307. data/tracks/objective-c/exercises/nucleotide-count/README.md +50 -0
  308. data/tracks/objective-c/exercises/pangram/README.md +32 -0
  309. data/tracks/objective-c/exercises/pascals-triangle/README.md +38 -0
  310. data/tracks/objective-c/exercises/perfect-numbers/README.md +41 -0
  311. data/tracks/objective-c/exercises/phone-number/README.md +51 -0
  312. data/tracks/objective-c/exercises/raindrops/README.md +41 -0
  313. data/tracks/objective-c/exercises/rna-transcription/README.md +42 -0
  314. data/tracks/objective-c/exercises/robot-name/README.md +39 -0
  315. data/tracks/objective-c/exercises/roman-numerals/README.md +66 -0
  316. data/tracks/objective-c/exercises/run-length-encoding/README.md +47 -0
  317. data/tracks/objective-c/exercises/scrabble-score/README.md +61 -0
  318. data/tracks/objective-c/exercises/secret-handshake/README.md +52 -0
  319. data/tracks/objective-c/exercises/sieve/README.md +51 -0
  320. data/tracks/objective-c/exercises/space-age/README.md +41 -0
  321. data/tracks/objective-c/exercises/sublist/README.md +38 -0
  322. data/tracks/objective-c/exercises/sum-of-multiples/README.md +35 -0
  323. data/tracks/objective-c/exercises/transpose/README.md +82 -0
  324. data/tracks/objective-c/exercises/triangle/README.md +43 -0
  325. data/tracks/objective-c/exercises/word-count/README.md +36 -0
  326. data/tracks/plsql/config/exercise_readme.go.tmpl +16 -0
  327. data/tracks/plsql/config.json +0 -2
  328. data/tracks/plsql/exercises/binary/README.md +55 -0
  329. data/tracks/plsql/exercises/difference-of-squares/README.md +39 -0
  330. data/tracks/plsql/exercises/gigasecond/README.md +31 -0
  331. data/tracks/plsql/exercises/grains/README.md +54 -0
  332. data/tracks/plsql/exercises/hamming/README.md +62 -0
  333. data/tracks/plsql/exercises/leap/README.md +53 -0
  334. data/tracks/plsql/exercises/nth-prime/README.md +35 -0
  335. data/tracks/plsql/exercises/raindrops/README.md +44 -0
  336. data/tracks/plsql/exercises/rna-transcription/README.md +45 -0
  337. data/tracks/plsql/exercises/roman-numerals/README.md +69 -0
  338. data/tracks/powershell/config.json +8 -5
  339. data/tracks/prolog/config/exercise_readme.go.tmpl +16 -0
  340. data/tracks/prolog/config.json +33 -5
  341. data/tracks/prolog/exercises/anagram/README.md +13 -0
  342. data/tracks/prolog/exercises/binary/README.md +35 -0
  343. data/tracks/prolog/exercises/grains/README.md +34 -0
  344. data/tracks/prolog/exercises/hamming/README.md +42 -0
  345. data/tracks/prolog/exercises/hello-world/README.md +21 -0
  346. data/tracks/prolog/exercises/leap/README.md +33 -0
  347. data/tracks/prolog/exercises/nucleotide-count/README.md +33 -0
  348. data/tracks/prolog/exercises/rna-transcription/README.md +25 -0
  349. data/tracks/prolog/exercises/space-age/README.md +24 -0
  350. data/tracks/prolog/exercises/sum-of-multiples/README.md +18 -0
  351. data/tracks/prolog/exercises/triangle/README.md +26 -0
  352. data/tracks/python/requirements-travis.txt +1 -1
  353. data/tracks/r/config/maintainers.json +35 -0
  354. data/tracks/r/config.json +1 -1
  355. data/tracks/racket/README.md +1 -1
  356. data/tracks/racket/config/exercise_readme.go.tmpl +16 -0
  357. data/tracks/racket/config.json +93 -25
  358. data/tracks/racket/exercises/accumulate/README.md +60 -0
  359. data/tracks/racket/exercises/acronym/README.md +40 -0
  360. data/tracks/racket/exercises/allergies/README.md +62 -0
  361. data/tracks/racket/exercises/anagram/README.md +38 -0
  362. data/tracks/racket/exercises/bob/README.md +43 -0
  363. data/tracks/racket/exercises/difference-of-squares/README.md +44 -0
  364. data/tracks/racket/exercises/etl/README.md +76 -0
  365. data/tracks/racket/exercises/gigasecond/README.md +36 -0
  366. data/tracks/racket/exercises/grains/README.md +59 -0
  367. data/tracks/racket/exercises/grep/README.md +96 -0
  368. data/tracks/racket/exercises/hamming/README.md +67 -0
  369. data/tracks/racket/exercises/hello-world/README.md +46 -0
  370. data/tracks/racket/exercises/leap/README.md +58 -0
  371. data/tracks/racket/exercises/list-ops/README.md +35 -0
  372. data/tracks/racket/exercises/nucleotide-count/README.md +58 -0
  373. data/tracks/racket/exercises/perfect-numbers/README.md +49 -0
  374. data/tracks/racket/exercises/phone-number/README.md +59 -0
  375. data/tracks/racket/exercises/raindrops/README.md +49 -0
  376. data/tracks/racket/exercises/rna-transcription/README.md +50 -0
  377. data/tracks/racket/exercises/roman-numerals/README.md +74 -0
  378. data/tracks/racket/exercises/say/README.md +94 -0
  379. data/tracks/racket/exercises/scrabble-score/README.md +69 -0
  380. data/tracks/racket/exercises/word-count/README.md +44 -0
  381. data/tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb +4 -2
  382. data/tracks/ruby/exercises/binary-search-tree/binary_search_tree_test.rb +13 -4
  383. data/tracks/scala/config/maintainers.json +29 -0
  384. data/tracks/scala/exercises/atbash-cipher/example.scala +4 -1
  385. data/tracks/scala/exercises/atbash-cipher/src/test/scala/AtbashCipherTest.scala +64 -0
  386. data/tracks/scala/exercises/roman-numerals/example.scala +2 -2
  387. data/tracks/scala/exercises/roman-numerals/src/test/scala/RomanNumeralsTest.scala +40 -39
  388. data/tracks/scala/testgen/src/main/scala/AtbashCipherTestGenerator.scala +16 -0
  389. data/tracks/scala/testgen/src/main/scala/RomanNumeralsTestGenerator.scala +15 -0
  390. data/tracks/scheme/config/exercise_readme.go.tmpl +16 -0
  391. data/tracks/scheme/config.json +42 -3
  392. data/tracks/scheme/exercises/anagram/README.md +13 -0
  393. data/tracks/scheme/exercises/bob/README.md +18 -0
  394. data/tracks/scheme/exercises/difference-of-squares/README.md +19 -0
  395. data/tracks/scheme/exercises/grains/README.md +34 -0
  396. data/tracks/scheme/exercises/hamming/README.md +42 -0
  397. data/tracks/scheme/exercises/hello-world/README.md +21 -0
  398. data/tracks/scheme/exercises/leap/README.md +33 -0
  399. data/tracks/scheme/exercises/list-ops/README.md +10 -0
  400. data/tracks/scheme/exercises/nucleotide-count/README.md +33 -0
  401. data/tracks/scheme/exercises/phone-number/README.md +34 -0
  402. data/tracks/scheme/exercises/raindrops/README.md +24 -0
  403. data/tracks/scheme/exercises/rna-transcription/README.md +25 -0
  404. data/tracks/scheme/exercises/robot-name/README.md +22 -0
  405. data/tracks/scheme/exercises/scrabble-score/README.md +44 -0
  406. data/tracks/sml/config/maintainers.json +25 -0
  407. data/tracks/typescript/config/exercise_readme.go.tmpl +16 -0
  408. data/tracks/typescript/config/maintainers.json +25 -0
  409. data/tracks/typescript/config.json +0 -2
  410. data/tracks/typescript/exercises/anagram/README.md +39 -0
  411. data/tracks/typescript/exercises/beer-song/README.md +353 -0
  412. data/tracks/typescript/exercises/bob/README.md +44 -0
  413. data/tracks/typescript/exercises/difference-of-squares/README.md +45 -0
  414. data/tracks/typescript/exercises/etl/README.md +77 -0
  415. data/tracks/typescript/exercises/food-chain/README.md +96 -0
  416. data/tracks/typescript/exercises/gigasecond/README.md +37 -0
  417. data/tracks/typescript/exercises/grade-school/README.md +68 -0
  418. data/tracks/typescript/exercises/hamming/README.md +68 -0
  419. data/tracks/typescript/exercises/hello-world/README.md +47 -0
  420. data/tracks/typescript/exercises/leap/README.md +59 -0
  421. data/tracks/typescript/exercises/pangram/README.md +41 -0
  422. data/tracks/typescript/exercises/phone-number/README.md +60 -0
  423. data/tracks/typescript/exercises/raindrops/README.md +50 -0
  424. data/tracks/typescript/exercises/rna-transcription/README.md +51 -0
  425. data/tracks/typescript/exercises/robot-name/README.md +48 -0
  426. data/tracks/typescript/exercises/say/README.md +95 -0
  427. data/tracks/typescript/exercises/scrabble-score/README.md +70 -0
  428. data/tracks/typescript/exercises/space-age/README.md +50 -0
  429. data/tracks/typescript/exercises/word-count/README.md +45 -0
  430. data/tracks/typescript/exercises/wordy/README.md +89 -0
  431. data/tracks/vbnet/config/exercise_readme.go.tmpl +16 -0
  432. data/tracks/vbnet/config.json +28 -12
  433. data/tracks/vbnet/exercises/accumulate/README.md +41 -0
  434. data/tracks/vbnet/exercises/allergies/README.md +43 -0
  435. data/tracks/vbnet/exercises/anagram/README.md +19 -0
  436. data/tracks/vbnet/exercises/atbash-cipher/README.md +40 -0
  437. data/tracks/vbnet/exercises/binary/README.md +41 -0
  438. data/tracks/vbnet/exercises/bob/README.md +24 -0
  439. data/tracks/vbnet/exercises/crypto-square/README.md +80 -0
  440. metadata +401 -4
  441. data/tracks/scala/exercises/atbash-cipher/src/main/scala/Atbash.scala +0 -3
  442. data/tracks/scala/exercises/atbash-cipher/src/test/scala/atbash_test.scala +0 -48
@@ -1,236 +1,327 @@
1
1
  {
2
- "slug": "elm",
3
2
  "language": "Elm",
4
- "repository": "https://github.com/exercism/elm",
5
3
  "active": true,
6
4
  "exercises": [
7
5
  {
6
+ "uuid": "2c3902df-93e1-48d1-829d-4daa93a1f06f",
8
7
  "slug": "hello-world",
8
+ "core": false,
9
+ "unlocked_by": null,
9
10
  "difficulty": 1,
10
11
  "topics": [
11
12
 
12
13
  ]
13
14
  },
14
15
  {
16
+ "uuid": "11ce2a73-3f43-4b14-b755-6c52dc71bdda",
15
17
  "slug": "bob",
18
+ "core": false,
19
+ "unlocked_by": null,
16
20
  "difficulty": 1,
17
21
  "topics": [
18
22
 
19
23
  ]
20
24
  },
21
25
  {
26
+ "uuid": "e943e3bf-920e-4541-95c3-be7bf6024afe",
22
27
  "slug": "leap",
28
+ "core": false,
29
+ "unlocked_by": null,
23
30
  "difficulty": 1,
24
31
  "topics": [
25
32
 
26
33
  ]
27
34
  },
28
35
  {
36
+ "uuid": "e3e73171-c3d1-49f7-9511-d1f4a08e7a69",
29
37
  "slug": "raindrops",
38
+ "core": false,
39
+ "unlocked_by": null,
30
40
  "difficulty": 1,
31
41
  "topics": [
32
42
 
33
43
  ]
34
44
  },
35
45
  {
46
+ "uuid": "a70503ba-f1f3-4583-9226-c3ada98e9500",
36
47
  "slug": "pangram",
48
+ "core": false,
49
+ "unlocked_by": null,
37
50
  "difficulty": 1,
38
51
  "topics": [
39
52
 
40
53
  ]
41
54
  },
42
55
  {
56
+ "uuid": "0b4561f3-59a7-4463-a733-c7fa8f9f332a",
43
57
  "slug": "accumulate",
58
+ "core": false,
59
+ "unlocked_by": null,
44
60
  "difficulty": 1,
45
61
  "topics": [
46
62
 
47
63
  ]
48
64
  },
49
65
  {
66
+ "uuid": "767f6825-8736-4307-85c7-090a9a327fd9",
50
67
  "slug": "triangle",
68
+ "core": false,
69
+ "unlocked_by": null,
51
70
  "difficulty": 1,
52
71
  "topics": [
53
72
 
54
73
  ]
55
74
  },
56
75
  {
76
+ "uuid": "16ccc1fa-34b0-4a7e-b3cf-33a711e857ea",
57
77
  "slug": "scrabble-score",
78
+ "core": false,
79
+ "unlocked_by": null,
58
80
  "difficulty": 1,
59
81
  "topics": [
60
82
 
61
83
  ]
62
84
  },
63
85
  {
86
+ "uuid": "5845a108-d8b2-41dd-b371-cf9eff7a2230",
64
87
  "slug": "anagram",
88
+ "core": false,
89
+ "unlocked_by": null,
65
90
  "difficulty": 1,
66
91
  "topics": [
67
92
 
68
93
  ]
69
94
  },
70
95
  {
96
+ "uuid": "2ce5bcba-c708-4da0-ae11-4654b3e0d0a5",
71
97
  "slug": "space-age",
98
+ "core": false,
99
+ "unlocked_by": null,
72
100
  "difficulty": 1,
73
101
  "topics": [
74
102
 
75
103
  ]
76
104
  },
77
105
  {
106
+ "uuid": "992c5ed1-9127-42a4-b508-61c9487612c5",
78
107
  "slug": "strain",
108
+ "core": false,
109
+ "unlocked_by": null,
79
110
  "difficulty": 1,
80
111
  "topics": [
81
112
 
82
113
  ]
83
114
  },
84
115
  {
116
+ "uuid": "646c7164-cfa4-42c3-9af5-2f672e6ec81e",
85
117
  "slug": "difference-of-squares",
118
+ "core": false,
119
+ "unlocked_by": null,
86
120
  "difficulty": 1,
87
121
  "topics": [
88
122
 
89
123
  ]
90
124
  },
91
125
  {
126
+ "uuid": "9c9507a6-8187-4ce6-b0bc-b4765effb74c",
92
127
  "slug": "word-count",
128
+ "core": false,
129
+ "unlocked_by": null,
93
130
  "difficulty": 1,
94
131
  "topics": [
95
132
 
96
133
  ]
97
134
  },
98
135
  {
136
+ "uuid": "75859d00-8772-4471-97a7-d6fe432edc5e",
99
137
  "slug": "sum-of-multiples",
138
+ "core": false,
139
+ "unlocked_by": null,
100
140
  "difficulty": 1,
101
141
  "topics": [
102
142
 
103
143
  ]
104
144
  },
105
145
  {
146
+ "uuid": "472c2e13-6608-4862-b884-a7e458e0bcdd",
106
147
  "slug": "hamming",
148
+ "core": false,
149
+ "unlocked_by": null,
107
150
  "difficulty": 1,
108
151
  "topics": [
109
152
 
110
153
  ]
111
154
  },
112
155
  {
156
+ "uuid": "3af96d19-87d7-4d8b-aecb-f63122815501",
113
157
  "slug": "rna-transcription",
158
+ "core": false,
159
+ "unlocked_by": null,
114
160
  "difficulty": 1,
115
161
  "topics": [
116
162
 
117
163
  ]
118
164
  },
119
165
  {
166
+ "uuid": "0b2ac079-f7ed-4e90-a566-00c9fe0d5c88",
120
167
  "slug": "run-length-encoding",
168
+ "core": false,
169
+ "unlocked_by": null,
121
170
  "difficulty": 1,
122
171
  "topics": [
123
172
 
124
173
  ]
125
174
  },
126
175
  {
176
+ "uuid": "8e1cb827-2fa9-46a4-ac50-7f8b3ba66809",
127
177
  "slug": "sublist",
178
+ "core": false,
179
+ "unlocked_by": null,
128
180
  "difficulty": 1,
129
181
  "topics": [
130
182
 
131
183
  ]
132
184
  },
133
185
  {
186
+ "uuid": "c9e00708-3d18-4a0b-a3de-cae4d979a981",
134
187
  "slug": "nucleotide-count",
188
+ "core": false,
189
+ "unlocked_by": null,
135
190
  "difficulty": 1,
136
191
  "topics": [
137
192
 
138
193
  ]
139
194
  },
140
195
  {
196
+ "uuid": "1e17ed2b-57b4-4cad-a684-ce7070d5023b",
141
197
  "slug": "series",
198
+ "core": false,
199
+ "unlocked_by": null,
142
200
  "difficulty": 1,
143
201
  "topics": [
144
202
 
145
203
  ]
146
204
  },
147
205
  {
206
+ "uuid": "1071ec57-5527-4eb1-b297-77355ed64547",
148
207
  "slug": "phone-number",
208
+ "core": false,
209
+ "unlocked_by": null,
149
210
  "difficulty": 1,
150
211
  "topics": [
151
212
 
152
213
  ]
153
214
  },
154
215
  {
216
+ "uuid": "c7749c5a-529e-4e46-8bdb-e33519f6d176",
155
217
  "slug": "grade-school",
218
+ "core": false,
219
+ "unlocked_by": null,
156
220
  "difficulty": 1,
157
221
  "topics": [
158
222
 
159
223
  ]
160
224
  },
161
225
  {
226
+ "uuid": "29b5a28a-417a-4cee-ba6f-9dd942ceffaa",
162
227
  "slug": "allergies",
228
+ "core": false,
229
+ "unlocked_by": null,
163
230
  "difficulty": 1,
164
231
  "topics": [
165
232
 
166
233
  ]
167
234
  },
168
235
  {
236
+ "uuid": "6b8f952e-94ea-4264-accf-cdb28b3b4529",
169
237
  "slug": "robot-simulator",
238
+ "core": false,
239
+ "unlocked_by": null,
170
240
  "difficulty": 1,
171
241
  "topics": [
172
242
 
173
243
  ]
174
244
  },
175
245
  {
246
+ "uuid": "114b5717-0d82-459e-90c4-f00d8b6beb5b",
176
247
  "slug": "list-ops",
248
+ "core": false,
249
+ "unlocked_by": null,
177
250
  "difficulty": 1,
178
251
  "topics": [
179
252
 
180
253
  ]
181
254
  },
182
255
  {
256
+ "uuid": "8322872b-e020-4a9e-9206-015c0fdacb62",
183
257
  "slug": "atbash-cipher",
258
+ "core": false,
259
+ "unlocked_by": null,
184
260
  "difficulty": 1,
185
261
  "topics": [
186
262
 
187
263
  ]
188
264
  },
189
265
  {
266
+ "uuid": "ea41b90d-3ff5-43c0-94e5-6b436feb99e5",
190
267
  "slug": "say",
268
+ "core": false,
269
+ "unlocked_by": null,
191
270
  "difficulty": 1,
192
271
  "topics": [
193
272
 
194
273
  ]
195
274
  },
196
275
  {
276
+ "uuid": "1902d726-5a62-475b-b7d3-7188a50e717f",
197
277
  "slug": "largest-series-product",
278
+ "core": false,
279
+ "unlocked_by": null,
198
280
  "difficulty": 1,
199
281
  "topics": [
200
282
 
201
283
  ]
202
284
  },
203
285
  {
286
+ "uuid": "c1461035-6abe-4f17-a818-7a3ac6642c18",
204
287
  "slug": "roman-numerals",
288
+ "core": false,
289
+ "unlocked_by": null,
205
290
  "difficulty": 1,
206
291
  "topics": [
207
292
 
208
293
  ]
209
294
  },
210
295
  {
296
+ "uuid": "5ddfed31-b787-48f9-b3bf-4a8d157d1c3d",
211
297
  "slug": "gigasecond",
298
+ "core": false,
299
+ "unlocked_by": null,
212
300
  "difficulty": 1,
213
301
  "topics": [
214
302
 
215
303
  ]
216
304
  },
217
305
  {
306
+ "uuid": "41518694-4293-49f6-8af5-1cdad84acf78",
218
307
  "slug": "grains",
308
+ "core": false,
309
+ "unlocked_by": null,
219
310
  "difficulty": 1,
220
311
  "topics": [
221
312
 
222
313
  ]
223
314
  },
224
315
  {
316
+ "uuid": "1f39d315-324c-4e2f-bf48-ce8432836596",
225
317
  "slug": "etl",
318
+ "core": false,
319
+ "unlocked_by": null,
226
320
  "difficulty": 1,
227
321
  "topics": [
228
322
 
229
323
  ]
230
324
  }
231
- ],
232
- "deprecated": [
233
-
234
325
  ],
235
326
  "foregone": [
236
327
 
@@ -0,0 +1,65 @@
1
+ # Accumulate
2
+
3
+ Implement the `accumulate` operation, which, given a collection and an
4
+ operation to perform on each element of the collection, returns a new
5
+ collection containing the result of applying that operation to each element of
6
+ the input collection.
7
+
8
+ Given the collection of numbers:
9
+
10
+ - 1, 2, 3, 4, 5
11
+
12
+ And the operation:
13
+
14
+ - square a number (`x => x * x`)
15
+
16
+ Your code should be able to produce the collection of squares:
17
+
18
+ - 1, 4, 9, 16, 25
19
+
20
+ Check out the test suite to see the expected function signature.
21
+
22
+ ## Restrictions
23
+
24
+ Keep your hands off that collect/map/fmap/whatchamacallit functionality
25
+ provided by your standard library!
26
+ Solve this one yourself using other basic tools instead.
27
+
28
+ Lisp specific: it's perfectly fine to use `MAPCAR` or the equivalent,
29
+ as this is idiomatic Lisp, not a library function.
30
+
31
+ ## Elm Installation
32
+
33
+ Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
34
+ installation and learning resources.
35
+
36
+ ## Writing the Code
37
+
38
+ The first time you start an exercise, you'll need to ensure you have the
39
+ appropriate dependencies installed.
40
+
41
+ ```bash
42
+ $ npm install
43
+ ```
44
+
45
+ Execute the tests with:
46
+
47
+ ```bash
48
+ $ npm test
49
+ ```
50
+
51
+ Automatically run tests again when you save changes:
52
+
53
+ ```bash
54
+ $ npm run watch
55
+ ```
56
+
57
+ As you work your way through the test suite, be sure to remove the `skip <|`
58
+ calls from each test until you get them all passing!
59
+
60
+ ## Source
61
+
62
+ Conversation with James Edward Gray II [https://twitter.com/jeg2](https://twitter.com/jeg2)
63
+
64
+ ## Submitting Incomplete Solutions
65
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,67 @@
1
+ # Allergies
2
+
3
+ Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
4
+
5
+ An allergy test produces a single numeric score which contains the
6
+ information about all the allergies the person has (that they were
7
+ tested for).
8
+
9
+ The list of items (and their value) that were tested are:
10
+
11
+ * eggs (1)
12
+ * peanuts (2)
13
+ * shellfish (4)
14
+ * strawberries (8)
15
+ * tomatoes (16)
16
+ * chocolate (32)
17
+ * pollen (64)
18
+ * cats (128)
19
+
20
+ So if Tom is allergic to peanuts and chocolate, he gets a score of 34.
21
+
22
+ Now, given just that score of 34, your program should be able to say:
23
+
24
+ - Whether Tom is allergic to any one of those allergens listed above.
25
+ - All the allergens Tom is allergic to.
26
+
27
+ Note: a given score may include allergens **not** listed above (i.e.
28
+ allergens that score 256, 512, 1024, etc.). Your program should
29
+ ignore those components of the score. For example, if the allergy
30
+ score is 257, your program should only report the eggs (1) allergy.
31
+
32
+
33
+ ## Elm Installation
34
+
35
+ Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
36
+ installation and learning resources.
37
+
38
+ ## Writing the Code
39
+
40
+ The first time you start an exercise, you'll need to ensure you have the
41
+ appropriate dependencies installed.
42
+
43
+ ```bash
44
+ $ npm install
45
+ ```
46
+
47
+ Execute the tests with:
48
+
49
+ ```bash
50
+ $ npm test
51
+ ```
52
+
53
+ Automatically run tests again when you save changes:
54
+
55
+ ```bash
56
+ $ npm run watch
57
+ ```
58
+
59
+ As you work your way through the test suite, be sure to remove the `skip <|`
60
+ calls from each test until you get them all passing!
61
+
62
+ ## Source
63
+
64
+ Jumpstart Lab Warm-up [http://jumpstartlab.com](http://jumpstartlab.com)
65
+
66
+ ## Submitting Incomplete Solutions
67
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,43 @@
1
+ # Anagram
2
+
3
+ Given a word and a list of possible anagrams, select the correct sublist.
4
+
5
+ Given `"listen"` and a list of candidates like `"enlists" "google"
6
+ "inlets" "banana"` the program should return a list containing
7
+ `"inlets"`.
8
+
9
+ ## Elm Installation
10
+
11
+ Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
12
+ installation and learning resources.
13
+
14
+ ## Writing the Code
15
+
16
+ The first time you start an exercise, you'll need to ensure you have the
17
+ appropriate dependencies installed.
18
+
19
+ ```bash
20
+ $ npm install
21
+ ```
22
+
23
+ Execute the tests with:
24
+
25
+ ```bash
26
+ $ npm test
27
+ ```
28
+
29
+ Automatically run tests again when you save changes:
30
+
31
+ ```bash
32
+ $ npm run watch
33
+ ```
34
+
35
+ As you work your way through the test suite, be sure to remove the `skip <|`
36
+ calls from each test until you get them all passing!
37
+
38
+ ## Source
39
+
40
+ Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
41
+
42
+ ## Submitting Incomplete Solutions
43
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,64 @@
1
+ # Atbash Cipher
2
+
3
+ Create an implementation of the atbash cipher, an ancient encryption system created in the Middle East.
4
+
5
+ The Atbash cipher is a simple substitution cipher that relies on
6
+ transposing all the letters in the alphabet such that the resulting
7
+ alphabet is backwards. The first letter is replaced with the last
8
+ letter, the second with the second-last, and so on.
9
+
10
+ An Atbash cipher for the Latin alphabet would be as follows:
11
+
12
+ ```plain
13
+ Plain: abcdefghijklmnopqrstuvwxyz
14
+ Cipher: zyxwvutsrqponmlkjihgfedcba
15
+ ```
16
+
17
+ It is a very weak cipher because it only has one possible key, and it is
18
+ a simple monoalphabetic substitution cipher. However, this may not have
19
+ been an issue in the cipher's time.
20
+
21
+ Ciphertext is written out in groups of fixed length, the traditional group size
22
+ being 5 letters, and punctuation is excluded. This is to make it harder to guess
23
+ things based on word boundaries.
24
+
25
+ ## Examples
26
+ - Encoding `test` gives `gvhg`
27
+ - Decoding `gvhg` gives `test`
28
+ - Decoding `gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt` gives `thequickbrownfoxjumpsoverthelazydog`
29
+
30
+ ## Elm Installation
31
+
32
+ Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
33
+ installation and learning resources.
34
+
35
+ ## Writing the Code
36
+
37
+ The first time you start an exercise, you'll need to ensure you have the
38
+ appropriate dependencies installed.
39
+
40
+ ```bash
41
+ $ npm install
42
+ ```
43
+
44
+ Execute the tests with:
45
+
46
+ ```bash
47
+ $ npm test
48
+ ```
49
+
50
+ Automatically run tests again when you save changes:
51
+
52
+ ```bash
53
+ $ npm run watch
54
+ ```
55
+
56
+ As you work your way through the test suite, be sure to remove the `skip <|`
57
+ calls from each test until you get them all passing!
58
+
59
+ ## Source
60
+
61
+ Wikipedia [http://en.wikipedia.org/wiki/Atbash](http://en.wikipedia.org/wiki/Atbash)
62
+
63
+ ## Submitting Incomplete Solutions
64
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,48 @@
1
+ # Bob
2
+
3
+ Bob is a lackadaisical teenager. In conversation, his responses are very limited.
4
+
5
+ Bob answers 'Sure.' if you ask him a question.
6
+
7
+ He answers 'Whoa, chill out!' if you yell at him.
8
+
9
+ He says 'Fine. Be that way!' if you address him without actually saying
10
+ anything.
11
+
12
+ He answers 'Whatever.' to anything else.
13
+
14
+ ## Elm Installation
15
+
16
+ Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
17
+ installation and learning resources.
18
+
19
+ ## Writing the Code
20
+
21
+ The first time you start an exercise, you'll need to ensure you have the
22
+ appropriate dependencies installed.
23
+
24
+ ```bash
25
+ $ npm install
26
+ ```
27
+
28
+ Execute the tests with:
29
+
30
+ ```bash
31
+ $ npm test
32
+ ```
33
+
34
+ Automatically run tests again when you save changes:
35
+
36
+ ```bash
37
+ $ npm run watch
38
+ ```
39
+
40
+ As you work your way through the test suite, be sure to remove the `skip <|`
41
+ calls from each test until you get them all passing!
42
+
43
+ ## Source
44
+
45
+ Inspired by the 'Deaf Grandma' exercise in Chris Pine's Learn to Program tutorial. [http://pine.fm/LearnToProgram/?Chapter=06](http://pine.fm/LearnToProgram/?Chapter=06)
46
+
47
+ ## Submitting Incomplete Solutions
48
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,49 @@
1
+ # Difference Of Squares
2
+
3
+ Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
4
+
5
+ The square of the sum of the first ten natural numbers is
6
+ (1 + 2 + ... + 10)² = 55² = 3025.
7
+
8
+ The sum of the squares of the first ten natural numbers is
9
+ 1² + 2² + ... + 10² = 385.
10
+
11
+ Hence the difference between the square of the sum of the first
12
+ ten natural numbers and the sum of the squares of the first ten
13
+ natural numbers is 3025 - 385 = 2640.
14
+
15
+ ## Elm Installation
16
+
17
+ Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
18
+ installation and learning resources.
19
+
20
+ ## Writing the Code
21
+
22
+ The first time you start an exercise, you'll need to ensure you have the
23
+ appropriate dependencies installed.
24
+
25
+ ```bash
26
+ $ npm install
27
+ ```
28
+
29
+ Execute the tests with:
30
+
31
+ ```bash
32
+ $ npm test
33
+ ```
34
+
35
+ Automatically run tests again when you save changes:
36
+
37
+ ```bash
38
+ $ npm run watch
39
+ ```
40
+
41
+ As you work your way through the test suite, be sure to remove the `skip <|`
42
+ calls from each test until you get them all passing!
43
+
44
+ ## Source
45
+
46
+ Problem 6 at Project Euler [http://projecteuler.net/problem=6](http://projecteuler.net/problem=6)
47
+
48
+ ## Submitting Incomplete Solutions
49
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.