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.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/bash/config.json +10 -0
- data/tracks/bash/exercises/error-handling/error_handling_test.sh +31 -0
- data/tracks/bash/exercises/error-handling/example.sh +9 -0
- data/tracks/ceylon/config/maintainers.json +25 -0
- data/tracks/chapel/README.md +1 -1
- data/tracks/chapel/config/exercise_readme.go.tmpl +16 -0
- data/tracks/chapel/config/maintainers.json +5 -0
- data/tracks/chapel/config.json +0 -5
- data/tracks/coffeescript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/coffeescript/config.json +84 -26
- data/tracks/coffeescript/exercises/accumulate/README.md +43 -0
- data/tracks/coffeescript/exercises/anagram/README.md +21 -0
- data/tracks/coffeescript/exercises/atbash-cipher/README.md +42 -0
- data/tracks/coffeescript/exercises/beer-song/README.md +335 -0
- data/tracks/coffeescript/exercises/binary/README.md +43 -0
- data/tracks/coffeescript/exercises/binary-search-tree/README.md +68 -0
- data/tracks/coffeescript/exercises/bob/README.md +26 -0
- data/tracks/coffeescript/exercises/clock/README.md +21 -0
- data/tracks/coffeescript/exercises/hello-world/README.md +29 -0
- data/tracks/coffeescript/exercises/hexadecimal/README.md +22 -0
- data/tracks/coffeescript/exercises/linked-list/README.md +42 -0
- data/tracks/coffeescript/exercises/luhn/README.md +79 -0
- data/tracks/coffeescript/exercises/nth-prime/README.md +23 -0
- data/tracks/coffeescript/exercises/nucleotide-count/README.md +41 -0
- data/tracks/coffeescript/exercises/palindrome-products/README.md +48 -0
- data/tracks/coffeescript/exercises/pascals-triangle/README.md +29 -0
- data/tracks/coffeescript/exercises/queen-attack/README.md +41 -0
- data/tracks/coffeescript/exercises/triangle/README.md +34 -0
- data/tracks/coffeescript/exercises/trinary/README.md +36 -0
- data/tracks/coffeescript/exercises/word-count/README.md +27 -0
- data/tracks/coffeescript/exercises/wordy/README.md +71 -0
- data/tracks/coldfusion/config/exercise_readme.go.tmpl +16 -0
- data/tracks/coldfusion/config.json +4 -6
- data/tracks/coldfusion/exercises/leap/README.md +33 -0
- data/tracks/coq/README.md +19 -32
- data/tracks/coq/config/exercise_readme.go.tmpl +16 -0
- data/tracks/coq/config.json +9 -5
- data/tracks/coq/exercises/hello-world/README.md +45 -0
- data/tracks/coq/exercises/rna-transcription/README.md +49 -0
- data/tracks/coq/exercises/tautology/README.md +33 -0
- data/tracks/cpp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/cpp/config.json +144 -41
- data/tracks/cpp/exercises/allergies/README.md +69 -0
- data/tracks/cpp/exercises/anagram/README.md +45 -0
- data/tracks/cpp/exercises/atbash-cipher/README.md +66 -0
- data/tracks/cpp/exercises/beer-song/README.md +359 -0
- data/tracks/cpp/exercises/binary/README.md +67 -0
- data/tracks/cpp/exercises/bob/README.md +50 -0
- data/tracks/cpp/exercises/clock/README.md +45 -0
- data/tracks/cpp/exercises/crypto-square/README.md +106 -0
- data/tracks/cpp/exercises/difference-of-squares/README.md +51 -0
- data/tracks/cpp/exercises/etl/README.md +83 -0
- data/tracks/cpp/exercises/food-chain/README.md +102 -0
- data/tracks/cpp/exercises/gigasecond/README.md +43 -0
- data/tracks/cpp/exercises/grade-school/README.md +74 -0
- data/tracks/cpp/exercises/grains/README.md +66 -0
- data/tracks/cpp/exercises/hamming/README.md +74 -0
- data/tracks/cpp/exercises/hello-world/README.md +53 -0
- data/tracks/cpp/exercises/hexadecimal/README.md +46 -0
- data/tracks/cpp/exercises/leap/README.md +65 -0
- data/tracks/cpp/exercises/meetup/README.md +62 -0
- data/tracks/cpp/exercises/nth-prime/README.md +47 -0
- data/tracks/cpp/exercises/nucleotide-count/README.md +65 -0
- data/tracks/cpp/exercises/phone-number/README.md +66 -0
- data/tracks/cpp/exercises/prime-factors/README.md +68 -0
- data/tracks/cpp/exercises/queen-attack/README.md +65 -0
- data/tracks/cpp/exercises/raindrops/README.md +56 -0
- data/tracks/cpp/exercises/rna-transcription/README.md +57 -0
- data/tracks/cpp/exercises/robot-name/README.md +54 -0
- data/tracks/cpp/exercises/roman-numerals/README.md +81 -0
- data/tracks/cpp/exercises/say/README.md +101 -0
- data/tracks/cpp/exercises/scrabble-score/README.md +76 -0
- data/tracks/cpp/exercises/series/README.md +59 -0
- data/tracks/cpp/exercises/sieve/README.md +66 -0
- data/tracks/cpp/exercises/space-age/README.md +56 -0
- data/tracks/cpp/exercises/sum-of-multiples/README.md +50 -0
- data/tracks/cpp/exercises/triangle/README.md +58 -0
- data/tracks/cpp/exercises/trinary/README.md +60 -0
- data/tracks/cpp/exercises/word-count/README.md +51 -0
- data/tracks/crystal/config.json +69 -3
- data/tracks/d/config/exercise_readme.go.tmpl +16 -0
- data/tracks/d/config.json +54 -3
- data/tracks/d/exercises/bob/README.md +49 -0
- data/tracks/d/exercises/circular-buffer/README.md +81 -0
- data/tracks/d/exercises/crypto-square/README.md +105 -0
- data/tracks/d/exercises/difference-of-squares/README.md +50 -0
- data/tracks/d/exercises/etl/README.md +82 -0
- data/tracks/d/exercises/gigasecond/README.md +42 -0
- data/tracks/d/exercises/hamming/README.md +73 -0
- data/tracks/d/exercises/hello-world/README.md +52 -0
- data/tracks/d/exercises/leap/README.md +64 -0
- data/tracks/d/exercises/nucleotide-count/README.md +64 -0
- data/tracks/d/exercises/pangram/README.md +46 -0
- data/tracks/d/exercises/raindrops/README.md +55 -0
- data/tracks/d/exercises/react/README.md +50 -0
- data/tracks/d/exercises/rna-transcription/README.md +56 -0
- data/tracks/d/exercises/robot-name/README.md +53 -0
- data/tracks/d/exercises/roman-numerals/README.md +80 -0
- data/tracks/d/exercises/series/README.md +58 -0
- data/tracks/d/exercises/triangle/README.md +57 -0
- data/tracks/delphi/config/maintainers.json +25 -0
- data/tracks/ecmascript/config/maintainers.json +35 -0
- data/tracks/elisp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/elisp/config.json +79 -22
- data/tracks/elisp/exercises/allergies/README.md +37 -0
- data/tracks/elisp/exercises/anagram/README.md +13 -0
- data/tracks/elisp/exercises/atbash-cipher/README.md +34 -0
- data/tracks/elisp/exercises/binary/README.md +35 -0
- data/tracks/elisp/exercises/bob/README.md +18 -0
- data/tracks/elisp/exercises/difference-of-squares/README.md +19 -0
- data/tracks/elisp/exercises/etl/README.md +51 -0
- data/tracks/elisp/exercises/gigasecond/README.md +11 -0
- data/tracks/elisp/exercises/grains/README.md +34 -0
- data/tracks/elisp/exercises/hamming/README.md +42 -0
- data/tracks/elisp/exercises/hello-world/README.md +21 -0
- data/tracks/elisp/exercises/leap/README.md +33 -0
- data/tracks/elisp/exercises/nucleotide-count/README.md +33 -0
- data/tracks/elisp/exercises/perfect-numbers/README.md +24 -0
- data/tracks/elisp/exercises/phone-number/README.md +34 -0
- data/tracks/elisp/exercises/raindrops/README.md +24 -0
- data/tracks/elisp/exercises/rna-transcription/README.md +25 -0
- data/tracks/elisp/exercises/robot-name/README.md +22 -0
- data/tracks/elisp/exercises/roman-numerals/README.md +49 -0
- data/tracks/elisp/exercises/word-count/README.md +19 -0
- data/tracks/elixir/config/maintainers.json +35 -0
- data/tracks/elm/config/exercise_readme.go.tmpl +16 -0
- data/tracks/elm/config.json +96 -5
- data/tracks/elm/exercises/accumulate/README.md +65 -0
- data/tracks/elm/exercises/allergies/README.md +67 -0
- data/tracks/elm/exercises/anagram/README.md +43 -0
- data/tracks/elm/exercises/atbash-cipher/README.md +64 -0
- data/tracks/elm/exercises/bob/README.md +48 -0
- data/tracks/elm/exercises/difference-of-squares/README.md +49 -0
- data/tracks/elm/exercises/etl/README.md +81 -0
- data/tracks/elm/exercises/gigasecond/README.md +41 -0
- data/tracks/elm/exercises/grade-school/README.md +72 -0
- data/tracks/elm/exercises/grains/README.md +64 -0
- data/tracks/elm/exercises/hamming/README.md +72 -0
- data/tracks/elm/exercises/hello-world/README.md +51 -0
- data/tracks/elm/exercises/largest-series-product/README.md +50 -0
- data/tracks/elm/exercises/leap/README.md +63 -0
- data/tracks/elm/exercises/list-ops/README.md +40 -0
- data/tracks/elm/exercises/nucleotide-count/README.md +63 -0
- data/tracks/elm/exercises/pangram/README.md +45 -0
- data/tracks/elm/exercises/phone-number/README.md +64 -0
- data/tracks/elm/exercises/raindrops/README.md +54 -0
- data/tracks/elm/exercises/rna-transcription/README.md +55 -0
- data/tracks/elm/exercises/robot-simulator/README.md +64 -0
- data/tracks/elm/exercises/roman-numerals/README.md +79 -0
- data/tracks/elm/exercises/run-length-encoding/README.md +60 -0
- data/tracks/elm/exercises/say/README.md +99 -0
- data/tracks/elm/exercises/scrabble-score/README.md +74 -0
- data/tracks/elm/exercises/series/README.md +57 -0
- data/tracks/elm/exercises/space-age/README.md +54 -0
- data/tracks/elm/exercises/strain/README.md +70 -0
- data/tracks/elm/exercises/sublist/README.md +51 -0
- data/tracks/elm/exercises/sum-of-multiples/README.md +48 -0
- data/tracks/elm/exercises/triangle/README.md +56 -0
- data/tracks/elm/exercises/word-count/README.md +49 -0
- data/tracks/fortran/config/exercise_readme.go.tmpl +16 -0
- data/tracks/fortran/config.json +21 -5
- data/tracks/fortran/exercises/bob/README.md +18 -0
- data/tracks/fortran/exercises/difference-of-squares/README.md +19 -0
- data/tracks/fortran/exercises/hamming/README.md +42 -0
- data/tracks/fortran/exercises/hello-world/README.md +21 -0
- data/tracks/fortran/exercises/pangram/README.md +15 -0
- data/tracks/fortran/exercises/raindrops/README.md +24 -0
- data/tracks/fortran/exercises/rna-transcription/README.md +25 -0
- data/tracks/go/config/maintainers.json +85 -0
- data/tracks/go/config.json +2 -2
- data/tracks/groovy/config/exercise_readme.go.tmpl +16 -0
- data/tracks/groovy/exercises/difference-of-squares/README.md +33 -0
- data/tracks/groovy/exercises/gigasecond/README.md +25 -0
- data/tracks/groovy/exercises/grains/README.md +48 -0
- data/tracks/groovy/exercises/hamming/README.md +56 -0
- data/tracks/groovy/exercises/hello-world/README.md +35 -0
- data/tracks/groovy/exercises/leap/README.md +47 -0
- data/tracks/groovy/exercises/nth-prime/README.md +29 -0
- data/tracks/groovy/exercises/phone-number/README.md +48 -0
- data/tracks/groovy/exercises/raindrops/README.md +38 -0
- data/tracks/groovy/exercises/rna-transcription/README.md +39 -0
- data/tracks/groovy/exercises/robot-name/README.md +36 -0
- data/tracks/groovy/exercises/roman-numerals/README.md +63 -0
- data/tracks/groovy/exercises/word-count/README.md +33 -0
- data/tracks/haxe/config/exercise_readme.go.tmpl +16 -0
- data/tracks/haxe/config.json +0 -2
- data/tracks/haxe/exercises/bob/README.md +18 -0
- data/tracks/haxe/exercises/hello-world/README.md +21 -0
- data/tracks/idris/config/exercise_readme.go.tmpl +16 -0
- data/tracks/idris/config.json +9 -3
- data/tracks/idris/exercises/hamming/README.md +42 -0
- data/tracks/idris/exercises/hello-world/README.md +21 -0
- data/tracks/idris/exercises/leap/README.md +33 -0
- data/tracks/java/config/maintainers.json +45 -0
- data/tracks/java/exercises/hello-world/TUTORIAL.md +1 -1
- data/tracks/javascript/config/maintainers.json +85 -0
- data/tracks/julia/config/exercise_readme.go.tmpl +16 -0
- data/tracks/julia/config.json +81 -5
- data/tracks/julia/exercises/anagram/README.md +13 -0
- data/tracks/julia/exercises/atbash-cipher/README.md +34 -0
- data/tracks/julia/exercises/bob/README.md +18 -0
- data/tracks/julia/exercises/complex-numbers/README.md +24 -0
- data/tracks/julia/exercises/custom-set/README.md +16 -0
- data/tracks/julia/exercises/difference-of-squares/README.md +19 -0
- data/tracks/julia/exercises/etl/README.md +51 -0
- data/tracks/julia/exercises/gigasecond/README.md +11 -0
- data/tracks/julia/exercises/hamming/README.md +42 -0
- data/tracks/julia/exercises/hello-world/README.md +21 -0
- data/tracks/julia/exercises/isogram/README.md +19 -0
- data/tracks/julia/exercises/leap/README.md +33 -0
- data/tracks/julia/exercises/luhn/README.md +71 -0
- data/tracks/julia/exercises/nucleotide-count/README.md +33 -0
- data/tracks/julia/exercises/pangram/README.md +15 -0
- data/tracks/julia/exercises/pascals-triangle/README.md +21 -0
- data/tracks/julia/exercises/raindrops/README.md +24 -0
- data/tracks/julia/exercises/rna-transcription/README.md +25 -0
- data/tracks/julia/exercises/robot-name/README.md +41 -0
- data/tracks/julia/exercises/roman-numerals/README.md +49 -0
- data/tracks/julia/exercises/rotational-cipher/README.md +59 -0
- data/tracks/julia/exercises/scrabble-score/README.md +44 -0
- data/tracks/julia/exercises/secret-handshake/README.md +35 -0
- data/tracks/julia/exercises/sieve/README.md +34 -0
- data/tracks/julia/exercises/transpose/README.md +65 -0
- data/tracks/julia/exercises/trinary/README.md +28 -0
- data/tracks/julia/exercises/word-count/README.md +19 -0
- data/tracks/lfe/config/exercise_readme.go.tmpl +16 -0
- data/tracks/lfe/config.json +125 -33
- data/tracks/lfe/exercises/accumulate/README.md +51 -0
- data/tracks/lfe/exercises/allergies/README.md +53 -0
- data/tracks/lfe/exercises/anagram/README.md +29 -0
- data/tracks/lfe/exercises/atbash-cipher/README.md +50 -0
- data/tracks/lfe/exercises/bank-account/README.md +46 -0
- data/tracks/lfe/exercises/beer-song/README.md +343 -0
- data/tracks/lfe/exercises/binary/README.md +51 -0
- data/tracks/lfe/exercises/bob/README.md +34 -0
- data/tracks/lfe/exercises/circular-buffer/README.md +66 -0
- data/tracks/lfe/exercises/clock/README.md +29 -0
- data/tracks/lfe/exercises/difference-of-squares/README.md +35 -0
- data/tracks/lfe/exercises/etl/README.md +67 -0
- data/tracks/lfe/exercises/gigasecond/README.md +27 -0
- data/tracks/lfe/exercises/grade-school/README.md +58 -0
- data/tracks/lfe/exercises/grains/README.md +50 -0
- data/tracks/lfe/exercises/hamming/README.md +58 -0
- data/tracks/lfe/exercises/largest-series-product/README.md +36 -0
- data/tracks/lfe/exercises/leap/README.md +49 -0
- data/tracks/lfe/exercises/luhn/README.md +87 -0
- data/tracks/lfe/exercises/meetup/README.md +46 -0
- data/tracks/lfe/exercises/nucleotide-count/README.md +49 -0
- data/tracks/lfe/exercises/parallel-letter-frequency/README.md +27 -0
- data/tracks/lfe/exercises/phone-number/README.md +50 -0
- data/tracks/lfe/exercises/rna-transcription/README.md +41 -0
- data/tracks/lfe/exercises/robot-simulator/README.md +50 -0
- data/tracks/lfe/exercises/series/README.md +43 -0
- data/tracks/lfe/exercises/space-age/README.md +40 -0
- data/tracks/lfe/exercises/strain/README.md +56 -0
- data/tracks/lfe/exercises/sum-of-multiples/README.md +34 -0
- data/tracks/lfe/exercises/trinary/README.md +44 -0
- data/tracks/lfe/exercises/word-count/README.md +35 -0
- data/tracks/lua/config/maintainers.json +35 -0
- data/tracks/lua/config.json +225 -3
- data/tracks/nasm/config/exercise_readme.go.tmpl +16 -0
- data/tracks/nasm/config.json +0 -5
- data/tracks/nim/config/exercise_readme.go.tmpl +16 -0
- data/tracks/nim/config.json +56 -19
- data/tracks/nim/exercises/anagram/README.md +13 -0
- data/tracks/nim/exercises/binary/README.md +35 -0
- data/tracks/nim/exercises/bob/README.md +18 -0
- data/tracks/nim/exercises/difference-of-squares/README.md +19 -0
- data/tracks/nim/exercises/hamming/README.md +42 -0
- data/tracks/nim/exercises/hello-world/README.md +21 -0
- data/tracks/nim/exercises/leap/README.md +33 -0
- data/tracks/nim/exercises/nucleotide-count/README.md +33 -0
- data/tracks/nim/exercises/queen-attack/README.md +33 -0
- data/tracks/nim/exercises/raindrops/README.md +24 -0
- data/tracks/nim/exercises/react/README.md +19 -0
- data/tracks/nim/exercises/rna-transcription/README.md +25 -0
- data/tracks/nim/exercises/triangle/README.md +26 -0
- data/tracks/nim/exercises/word-count/README.md +19 -0
- data/tracks/objective-c/config/exercise_readme.go.tmpl +16 -0
- data/tracks/objective-c/config/maintainers.json +35 -0
- data/tracks/objective-c/config.json +168 -47
- data/tracks/objective-c/exercises/acronym/README.md +32 -0
- data/tracks/objective-c/exercises/all-your-base/README.md +52 -0
- data/tracks/objective-c/exercises/allergies/README.md +54 -0
- data/tracks/objective-c/exercises/anagram/README.md +30 -0
- data/tracks/objective-c/exercises/atbash-cipher/README.md +51 -0
- data/tracks/objective-c/exercises/beer-song/README.md +344 -0
- data/tracks/objective-c/exercises/binary-search/README.md +58 -0
- data/tracks/objective-c/exercises/bob/README.md +35 -0
- data/tracks/objective-c/exercises/bracket-push/README.md +27 -0
- data/tracks/objective-c/exercises/clock/README.md +30 -0
- data/tracks/objective-c/exercises/crypto-square/README.md +91 -0
- data/tracks/objective-c/exercises/difference-of-squares/README.md +36 -0
- data/tracks/objective-c/exercises/etl/README.md +68 -0
- data/tracks/objective-c/exercises/flatten-array/README.md +35 -0
- data/tracks/objective-c/exercises/gigasecond/README.md +28 -0
- data/tracks/objective-c/exercises/grade-school/README.md +59 -0
- data/tracks/objective-c/exercises/hamming/README.md +59 -0
- data/tracks/objective-c/exercises/hello-world/README.md +38 -0
- data/tracks/objective-c/exercises/isogram/README.md +36 -0
- data/tracks/objective-c/exercises/largest-series-product/README.md +37 -0
- data/tracks/objective-c/exercises/leap/README.md +50 -0
- data/tracks/objective-c/exercises/luhn/README.md +88 -0
- data/tracks/objective-c/exercises/meetup/README.md +47 -0
- data/tracks/objective-c/exercises/nucleotide-count/README.md +50 -0
- data/tracks/objective-c/exercises/pangram/README.md +32 -0
- data/tracks/objective-c/exercises/pascals-triangle/README.md +38 -0
- data/tracks/objective-c/exercises/perfect-numbers/README.md +41 -0
- data/tracks/objective-c/exercises/phone-number/README.md +51 -0
- data/tracks/objective-c/exercises/raindrops/README.md +41 -0
- data/tracks/objective-c/exercises/rna-transcription/README.md +42 -0
- data/tracks/objective-c/exercises/robot-name/README.md +39 -0
- data/tracks/objective-c/exercises/roman-numerals/README.md +66 -0
- data/tracks/objective-c/exercises/run-length-encoding/README.md +47 -0
- data/tracks/objective-c/exercises/scrabble-score/README.md +61 -0
- data/tracks/objective-c/exercises/secret-handshake/README.md +52 -0
- data/tracks/objective-c/exercises/sieve/README.md +51 -0
- data/tracks/objective-c/exercises/space-age/README.md +41 -0
- data/tracks/objective-c/exercises/sublist/README.md +38 -0
- data/tracks/objective-c/exercises/sum-of-multiples/README.md +35 -0
- data/tracks/objective-c/exercises/transpose/README.md +82 -0
- data/tracks/objective-c/exercises/triangle/README.md +43 -0
- data/tracks/objective-c/exercises/word-count/README.md +36 -0
- data/tracks/plsql/config/exercise_readme.go.tmpl +16 -0
- data/tracks/plsql/config.json +0 -2
- data/tracks/plsql/exercises/binary/README.md +55 -0
- data/tracks/plsql/exercises/difference-of-squares/README.md +39 -0
- data/tracks/plsql/exercises/gigasecond/README.md +31 -0
- data/tracks/plsql/exercises/grains/README.md +54 -0
- data/tracks/plsql/exercises/hamming/README.md +62 -0
- data/tracks/plsql/exercises/leap/README.md +53 -0
- data/tracks/plsql/exercises/nth-prime/README.md +35 -0
- data/tracks/plsql/exercises/raindrops/README.md +44 -0
- data/tracks/plsql/exercises/rna-transcription/README.md +45 -0
- data/tracks/plsql/exercises/roman-numerals/README.md +69 -0
- data/tracks/powershell/config.json +8 -5
- data/tracks/prolog/config/exercise_readme.go.tmpl +16 -0
- data/tracks/prolog/config.json +33 -5
- data/tracks/prolog/exercises/anagram/README.md +13 -0
- data/tracks/prolog/exercises/binary/README.md +35 -0
- data/tracks/prolog/exercises/grains/README.md +34 -0
- data/tracks/prolog/exercises/hamming/README.md +42 -0
- data/tracks/prolog/exercises/hello-world/README.md +21 -0
- data/tracks/prolog/exercises/leap/README.md +33 -0
- data/tracks/prolog/exercises/nucleotide-count/README.md +33 -0
- data/tracks/prolog/exercises/rna-transcription/README.md +25 -0
- data/tracks/prolog/exercises/space-age/README.md +24 -0
- data/tracks/prolog/exercises/sum-of-multiples/README.md +18 -0
- data/tracks/prolog/exercises/triangle/README.md +26 -0
- data/tracks/python/requirements-travis.txt +1 -1
- data/tracks/r/config/maintainers.json +35 -0
- data/tracks/r/config.json +1 -1
- data/tracks/racket/README.md +1 -1
- data/tracks/racket/config/exercise_readme.go.tmpl +16 -0
- data/tracks/racket/config.json +93 -25
- data/tracks/racket/exercises/accumulate/README.md +60 -0
- data/tracks/racket/exercises/acronym/README.md +40 -0
- data/tracks/racket/exercises/allergies/README.md +62 -0
- data/tracks/racket/exercises/anagram/README.md +38 -0
- data/tracks/racket/exercises/bob/README.md +43 -0
- data/tracks/racket/exercises/difference-of-squares/README.md +44 -0
- data/tracks/racket/exercises/etl/README.md +76 -0
- data/tracks/racket/exercises/gigasecond/README.md +36 -0
- data/tracks/racket/exercises/grains/README.md +59 -0
- data/tracks/racket/exercises/grep/README.md +96 -0
- data/tracks/racket/exercises/hamming/README.md +67 -0
- data/tracks/racket/exercises/hello-world/README.md +46 -0
- data/tracks/racket/exercises/leap/README.md +58 -0
- data/tracks/racket/exercises/list-ops/README.md +35 -0
- data/tracks/racket/exercises/nucleotide-count/README.md +58 -0
- data/tracks/racket/exercises/perfect-numbers/README.md +49 -0
- data/tracks/racket/exercises/phone-number/README.md +59 -0
- data/tracks/racket/exercises/raindrops/README.md +49 -0
- data/tracks/racket/exercises/rna-transcription/README.md +50 -0
- data/tracks/racket/exercises/roman-numerals/README.md +74 -0
- data/tracks/racket/exercises/say/README.md +94 -0
- data/tracks/racket/exercises/scrabble-score/README.md +69 -0
- data/tracks/racket/exercises/word-count/README.md +44 -0
- data/tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb +4 -2
- data/tracks/ruby/exercises/binary-search-tree/binary_search_tree_test.rb +13 -4
- data/tracks/scala/config/maintainers.json +29 -0
- data/tracks/scala/exercises/atbash-cipher/example.scala +4 -1
- data/tracks/scala/exercises/atbash-cipher/src/test/scala/AtbashCipherTest.scala +64 -0
- data/tracks/scala/exercises/roman-numerals/example.scala +2 -2
- data/tracks/scala/exercises/roman-numerals/src/test/scala/RomanNumeralsTest.scala +40 -39
- data/tracks/scala/testgen/src/main/scala/AtbashCipherTestGenerator.scala +16 -0
- data/tracks/scala/testgen/src/main/scala/RomanNumeralsTestGenerator.scala +15 -0
- data/tracks/scheme/config/exercise_readme.go.tmpl +16 -0
- data/tracks/scheme/config.json +42 -3
- data/tracks/scheme/exercises/anagram/README.md +13 -0
- data/tracks/scheme/exercises/bob/README.md +18 -0
- data/tracks/scheme/exercises/difference-of-squares/README.md +19 -0
- data/tracks/scheme/exercises/grains/README.md +34 -0
- data/tracks/scheme/exercises/hamming/README.md +42 -0
- data/tracks/scheme/exercises/hello-world/README.md +21 -0
- data/tracks/scheme/exercises/leap/README.md +33 -0
- data/tracks/scheme/exercises/list-ops/README.md +10 -0
- data/tracks/scheme/exercises/nucleotide-count/README.md +33 -0
- data/tracks/scheme/exercises/phone-number/README.md +34 -0
- data/tracks/scheme/exercises/raindrops/README.md +24 -0
- data/tracks/scheme/exercises/rna-transcription/README.md +25 -0
- data/tracks/scheme/exercises/robot-name/README.md +22 -0
- data/tracks/scheme/exercises/scrabble-score/README.md +44 -0
- data/tracks/sml/config/maintainers.json +25 -0
- data/tracks/typescript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/typescript/config/maintainers.json +25 -0
- data/tracks/typescript/config.json +0 -2
- data/tracks/typescript/exercises/anagram/README.md +39 -0
- data/tracks/typescript/exercises/beer-song/README.md +353 -0
- data/tracks/typescript/exercises/bob/README.md +44 -0
- data/tracks/typescript/exercises/difference-of-squares/README.md +45 -0
- data/tracks/typescript/exercises/etl/README.md +77 -0
- data/tracks/typescript/exercises/food-chain/README.md +96 -0
- data/tracks/typescript/exercises/gigasecond/README.md +37 -0
- data/tracks/typescript/exercises/grade-school/README.md +68 -0
- data/tracks/typescript/exercises/hamming/README.md +68 -0
- data/tracks/typescript/exercises/hello-world/README.md +47 -0
- data/tracks/typescript/exercises/leap/README.md +59 -0
- data/tracks/typescript/exercises/pangram/README.md +41 -0
- data/tracks/typescript/exercises/phone-number/README.md +60 -0
- data/tracks/typescript/exercises/raindrops/README.md +50 -0
- data/tracks/typescript/exercises/rna-transcription/README.md +51 -0
- data/tracks/typescript/exercises/robot-name/README.md +48 -0
- data/tracks/typescript/exercises/say/README.md +95 -0
- data/tracks/typescript/exercises/scrabble-score/README.md +70 -0
- data/tracks/typescript/exercises/space-age/README.md +50 -0
- data/tracks/typescript/exercises/word-count/README.md +45 -0
- data/tracks/typescript/exercises/wordy/README.md +89 -0
- data/tracks/vbnet/config/exercise_readme.go.tmpl +16 -0
- data/tracks/vbnet/config.json +28 -12
- data/tracks/vbnet/exercises/accumulate/README.md +41 -0
- data/tracks/vbnet/exercises/allergies/README.md +43 -0
- data/tracks/vbnet/exercises/anagram/README.md +19 -0
- data/tracks/vbnet/exercises/atbash-cipher/README.md +40 -0
- data/tracks/vbnet/exercises/binary/README.md +41 -0
- data/tracks/vbnet/exercises/bob/README.md +24 -0
- data/tracks/vbnet/exercises/crypto-square/README.md +80 -0
- metadata +401 -4
- data/tracks/scala/exercises/atbash-cipher/src/main/scala/Atbash.scala +0 -3
- data/tracks/scala/exercises/atbash-cipher/src/test/scala/atbash_test.scala +0 -48
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Phone Number
|
|
2
|
+
|
|
3
|
+
Clean up user-entered phone numbers so that they can be sent SMS messages.
|
|
4
|
+
|
|
5
|
+
The **North American Numbering Plan (NANP)** is a telephone numbering system used by many countries in North America like the United States, Canada or Bermuda. All NANP-countries share the same international country code: `1`.
|
|
6
|
+
|
|
7
|
+
NANP numbers are ten-digit numbers consisting of a three-digit Numbering Plan Area code, commonly known as *area code*, followed by a seven-digit local number. The first three digits of the local number represent the *exchange code*, followed by the unique four-digit number which is the *subscriber number*.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
The format is usually represented as
|
|
11
|
+
```
|
|
12
|
+
(NXX)-NXX-XXXX
|
|
13
|
+
```
|
|
14
|
+
where `N` is any digit from 2 through 9 and `X` is any digit from 0 through 9.
|
|
15
|
+
|
|
16
|
+
Your task is to clean up differently formated telephone numbers by removing punctuation and the country code (1) if present.
|
|
17
|
+
|
|
18
|
+
For example, the inputs
|
|
19
|
+
- `+1 (613)-995-0253`
|
|
20
|
+
- `613-995-0253`
|
|
21
|
+
- `1 613 995 0253`
|
|
22
|
+
- `613.995.0253`
|
|
23
|
+
|
|
24
|
+
should all produce the output
|
|
25
|
+
|
|
26
|
+
`6139950253`
|
|
27
|
+
|
|
28
|
+
**Note:** As this exercise only deals with telephone numbers used in NANP-countries, only 1 is considered a valid country code.
|
|
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
|
+
Event Manager by JumpstartLab [http://tutorials.jumpstartlab.com/projects/eventmanager.html](http://tutorials.jumpstartlab.com/projects/eventmanager.html)
|
|
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,54 @@
|
|
|
1
|
+
# Raindrops
|
|
2
|
+
|
|
3
|
+
Convert a number to a string, the contents of which depend on the number's factors.
|
|
4
|
+
|
|
5
|
+
- If the number has 3 as a factor, output 'Pling'.
|
|
6
|
+
- If the number has 5 as a factor, output 'Plang'.
|
|
7
|
+
- If the number has 7 as a factor, output 'Plong'.
|
|
8
|
+
- If the number does not have 3, 5, or 7 as a factor,
|
|
9
|
+
just pass the number's digits straight through.
|
|
10
|
+
|
|
11
|
+
## Examples
|
|
12
|
+
|
|
13
|
+
- 28's factors are 1, 2, 4, **7**, 14, 28.
|
|
14
|
+
- In raindrop-speak, this would be a simple "Plong".
|
|
15
|
+
- 30's factors are 1, 2, **3**, **5**, 6, 10, 15, 30.
|
|
16
|
+
- In raindrop-speak, this would be a "PlingPlang".
|
|
17
|
+
- 34 has four factors: 1, 2, 17, and 34.
|
|
18
|
+
- In raindrop-speak, this would be "34".
|
|
19
|
+
|
|
20
|
+
## Elm Installation
|
|
21
|
+
|
|
22
|
+
Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
|
|
23
|
+
installation and learning resources.
|
|
24
|
+
|
|
25
|
+
## Writing the Code
|
|
26
|
+
|
|
27
|
+
The first time you start an exercise, you'll need to ensure you have the
|
|
28
|
+
appropriate dependencies installed.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
$ npm install
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Execute the tests with:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
$ npm test
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Automatically run tests again when you save changes:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
$ npm run watch
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
As you work your way through the test suite, be sure to remove the `skip <|`
|
|
47
|
+
calls from each test until you get them all passing!
|
|
48
|
+
|
|
49
|
+
## Source
|
|
50
|
+
|
|
51
|
+
A variation on a famous interview question intended to weed out potential candidates. [http://jumpstartlab.com](http://jumpstartlab.com)
|
|
52
|
+
|
|
53
|
+
## Submitting Incomplete Solutions
|
|
54
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Rna Transcription
|
|
2
|
+
|
|
3
|
+
Given a DNA strand, return its RNA complement (per RNA transcription).
|
|
4
|
+
|
|
5
|
+
Both DNA and RNA strands are a sequence of nucleotides.
|
|
6
|
+
|
|
7
|
+
The four nucleotides found in DNA are adenine (**A**), cytosine (**C**),
|
|
8
|
+
guanine (**G**) and thymine (**T**).
|
|
9
|
+
|
|
10
|
+
The four nucleotides found in RNA are adenine (**A**), cytosine (**C**),
|
|
11
|
+
guanine (**G**) and uracil (**U**).
|
|
12
|
+
|
|
13
|
+
Given a DNA strand, its transcribed RNA strand is formed by replacing
|
|
14
|
+
each nucleotide with its complement:
|
|
15
|
+
|
|
16
|
+
* `G` -> `C`
|
|
17
|
+
* `C` -> `G`
|
|
18
|
+
* `T` -> `A`
|
|
19
|
+
* `A` -> `U`
|
|
20
|
+
|
|
21
|
+
## Elm Installation
|
|
22
|
+
|
|
23
|
+
Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
|
|
24
|
+
installation and learning resources.
|
|
25
|
+
|
|
26
|
+
## Writing the Code
|
|
27
|
+
|
|
28
|
+
The first time you start an exercise, you'll need to ensure you have the
|
|
29
|
+
appropriate dependencies installed.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
$ npm install
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Execute the tests with:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
$ npm test
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Automatically run tests again when you save changes:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
$ npm run watch
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
As you work your way through the test suite, be sure to remove the `skip <|`
|
|
48
|
+
calls from each test until you get them all passing!
|
|
49
|
+
|
|
50
|
+
## Source
|
|
51
|
+
|
|
52
|
+
Rosalind [http://rosalind.info/problems/rna](http://rosalind.info/problems/rna)
|
|
53
|
+
|
|
54
|
+
## Submitting Incomplete Solutions
|
|
55
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
## 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
|
+
Inspired by an interview question at a famous company.
|
|
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,79 @@
|
|
|
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
|
+
## Elm Installation
|
|
46
|
+
|
|
47
|
+
Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
|
|
48
|
+
installation and learning resources.
|
|
49
|
+
|
|
50
|
+
## Writing the Code
|
|
51
|
+
|
|
52
|
+
The first time you start an exercise, you'll need to ensure you have the
|
|
53
|
+
appropriate dependencies installed.
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
$ npm install
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Execute the tests with:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
$ npm test
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Automatically run tests again when you save changes:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
$ npm run watch
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
As you work your way through the test suite, be sure to remove the `skip <|`
|
|
72
|
+
calls from each test until you get them all passing!
|
|
73
|
+
|
|
74
|
+
## Source
|
|
75
|
+
|
|
76
|
+
The Roman Numeral Kata [http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals](http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals)
|
|
77
|
+
|
|
78
|
+
## Submitting Incomplete Solutions
|
|
79
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
## Elm Installation
|
|
27
|
+
|
|
28
|
+
Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
|
|
29
|
+
installation and learning resources.
|
|
30
|
+
|
|
31
|
+
## Writing the Code
|
|
32
|
+
|
|
33
|
+
The first time you start an exercise, you'll need to ensure you have the
|
|
34
|
+
appropriate dependencies installed.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
$ npm install
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Execute the tests with:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
$ npm test
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Automatically run tests again when you save changes:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
$ npm run watch
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
As you work your way through the test suite, be sure to remove the `skip <|`
|
|
53
|
+
calls from each test until you get them all passing!
|
|
54
|
+
|
|
55
|
+
## Source
|
|
56
|
+
|
|
57
|
+
Wikipedia [https://en.wikipedia.org/wiki/Run-length_encoding](https://en.wikipedia.org/wiki/Run-length_encoding)
|
|
58
|
+
|
|
59
|
+
## Submitting Incomplete Solutions
|
|
60
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,99 @@
|
|
|
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
|
+
## Elm Installation
|
|
66
|
+
|
|
67
|
+
Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
|
|
68
|
+
installation and learning resources.
|
|
69
|
+
|
|
70
|
+
## Writing the Code
|
|
71
|
+
|
|
72
|
+
The first time you start an exercise, you'll need to ensure you have the
|
|
73
|
+
appropriate dependencies installed.
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
$ npm install
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Execute the tests with:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
$ npm test
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Automatically run tests again when you save changes:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
$ npm run watch
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
As you work your way through the test suite, be sure to remove the `skip <|`
|
|
92
|
+
calls from each test until you get them all passing!
|
|
93
|
+
|
|
94
|
+
## Source
|
|
95
|
+
|
|
96
|
+
A variation on JavaRanch CattleDrive, exercise 4a [http://www.javaranch.com/say.jsp](http://www.javaranch.com/say.jsp)
|
|
97
|
+
|
|
98
|
+
## Submitting Incomplete Solutions
|
|
99
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,74 @@
|
|
|
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
|
+
## Elm Installation
|
|
41
|
+
|
|
42
|
+
Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
|
|
43
|
+
installation and learning resources.
|
|
44
|
+
|
|
45
|
+
## Writing the Code
|
|
46
|
+
|
|
47
|
+
The first time you start an exercise, you'll need to ensure you have the
|
|
48
|
+
appropriate dependencies installed.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
$ npm install
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Execute the tests with:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
$ npm test
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Automatically run tests again when you save changes:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
$ npm run watch
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
As you work your way through the test suite, be sure to remove the `skip <|`
|
|
67
|
+
calls from each test until you get them all passing!
|
|
68
|
+
|
|
69
|
+
## Source
|
|
70
|
+
|
|
71
|
+
Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
|
|
72
|
+
|
|
73
|
+
## Submitting Incomplete Solutions
|
|
74
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Series
|
|
2
|
+
|
|
3
|
+
Given a string of digits, output all the contiguous substrings of length `n` in
|
|
4
|
+
that string.
|
|
5
|
+
|
|
6
|
+
For example, the string "49142" has the following 3-digit series:
|
|
7
|
+
|
|
8
|
+
- 491
|
|
9
|
+
- 914
|
|
10
|
+
- 142
|
|
11
|
+
|
|
12
|
+
And the following 4-digit series:
|
|
13
|
+
|
|
14
|
+
- 4914
|
|
15
|
+
- 9142
|
|
16
|
+
|
|
17
|
+
And if you ask for a 6-digit series from a 5-digit string, you deserve
|
|
18
|
+
whatever you get.
|
|
19
|
+
|
|
20
|
+
Note that these series are only required to occupy *adjacent positions*
|
|
21
|
+
in the input; the digits need not be *numerically consecutive*.
|
|
22
|
+
|
|
23
|
+
## Elm Installation
|
|
24
|
+
|
|
25
|
+
Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
|
|
26
|
+
installation and learning resources.
|
|
27
|
+
|
|
28
|
+
## Writing the Code
|
|
29
|
+
|
|
30
|
+
The first time you start an exercise, you'll need to ensure you have the
|
|
31
|
+
appropriate dependencies installed.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
$ npm install
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Execute the tests with:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
$ npm test
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Automatically run tests again when you save changes:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
$ npm run watch
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
As you work your way through the test suite, be sure to remove the `skip <|`
|
|
50
|
+
calls from each test until you get them all passing!
|
|
51
|
+
|
|
52
|
+
## Source
|
|
53
|
+
|
|
54
|
+
A subset of the Problem 8 at Project Euler [http://projecteuler.net/problem=8](http://projecteuler.net/problem=8)
|
|
55
|
+
|
|
56
|
+
## Submitting Incomplete Solutions
|
|
57
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Space Age
|
|
2
|
+
|
|
3
|
+
Given an age in seconds, calculate how old someone would be on:
|
|
4
|
+
|
|
5
|
+
- Earth: orbital period 365.25 Earth days, or 31557600 seconds
|
|
6
|
+
- Mercury: orbital period 0.2408467 Earth years
|
|
7
|
+
- Venus: orbital period 0.61519726 Earth years
|
|
8
|
+
- Mars: orbital period 1.8808158 Earth years
|
|
9
|
+
- Jupiter: orbital period 11.862615 Earth years
|
|
10
|
+
- Saturn: orbital period 29.447498 Earth years
|
|
11
|
+
- Uranus: orbital period 84.016846 Earth years
|
|
12
|
+
- Neptune: orbital period 164.79132 Earth years
|
|
13
|
+
|
|
14
|
+
So if you were told someone were 1,000,000,000 seconds old, you should
|
|
15
|
+
be able to say that they're 31 Earth-years old.
|
|
16
|
+
|
|
17
|
+
If you're wondering why Pluto didn't make the cut, go watch [this
|
|
18
|
+
youtube video](http://www.youtube.com/watch?v=Z_2gbGXzFbs).
|
|
19
|
+
|
|
20
|
+
## Elm Installation
|
|
21
|
+
|
|
22
|
+
Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
|
|
23
|
+
installation and learning resources.
|
|
24
|
+
|
|
25
|
+
## Writing the Code
|
|
26
|
+
|
|
27
|
+
The first time you start an exercise, you'll need to ensure you have the
|
|
28
|
+
appropriate dependencies installed.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
$ npm install
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Execute the tests with:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
$ npm test
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Automatically run tests again when you save changes:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
$ npm run watch
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
As you work your way through the test suite, be sure to remove the `skip <|`
|
|
47
|
+
calls from each test until you get them all passing!
|
|
48
|
+
|
|
49
|
+
## Source
|
|
50
|
+
|
|
51
|
+
Partially inspired by Chapter 1 in Chris Pine's online Learn to Program tutorial. [http://pine.fm/LearnToProgram/?Chapter=01](http://pine.fm/LearnToProgram/?Chapter=01)
|
|
52
|
+
|
|
53
|
+
## Submitting Incomplete Solutions
|
|
54
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|