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,53 @@
|
|
|
1
|
+
# Robot Name
|
|
2
|
+
|
|
3
|
+
Manage robot factory settings.
|
|
4
|
+
|
|
5
|
+
When robots come off the factory floor, they have no name.
|
|
6
|
+
|
|
7
|
+
The first time you boot them up, a random name is generated in the format
|
|
8
|
+
of two uppercase letters followed by three digits, such as RX837 or BC811.
|
|
9
|
+
|
|
10
|
+
Every once in a while we need to reset a robot to its factory settings,
|
|
11
|
+
which means that their name gets wiped. The next time you ask, it will
|
|
12
|
+
respond with a new random name.
|
|
13
|
+
|
|
14
|
+
The names must be random: they should not follow a predictable sequence.
|
|
15
|
+
Random names means a risk of collisions. Your solution must ensure that
|
|
16
|
+
every existing robot has a unique name.
|
|
17
|
+
|
|
18
|
+
## Getting Started
|
|
19
|
+
|
|
20
|
+
Make sure you have read [D page](http://exercism.io/languages/dlang) on
|
|
21
|
+
exercism.io. This covers the basic information on setting up the development
|
|
22
|
+
environment expected by the exercises.
|
|
23
|
+
|
|
24
|
+
## Passing the Tests
|
|
25
|
+
|
|
26
|
+
Get the first test compiling, linking and passing by following the [three
|
|
27
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
28
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
29
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
30
|
+
just enough code to get the test to pass. Once you've done that,
|
|
31
|
+
uncomment the next test by moving the following line past the next test.
|
|
32
|
+
|
|
33
|
+
```D
|
|
34
|
+
static if (all_tests_enabled)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
This may result in compile errors as new constructs may be invoked that
|
|
38
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
39
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
40
|
+
refactor your implementation for readability and expressiveness and then
|
|
41
|
+
go on to the next test.
|
|
42
|
+
|
|
43
|
+
Try to use standard D facilities in preference to writing your own
|
|
44
|
+
low-level algorithms or facilities by hand. [DRefLanguage](https://dlang.org/spec/spec.html)
|
|
45
|
+
and [DReference](https://dlang.org/phobos/index.html) are references to the D language and D standard library.
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
## Source
|
|
49
|
+
|
|
50
|
+
A debugging session with Paul Blackwell at gSchool. [http://gschool.it](http://gschool.it)
|
|
51
|
+
|
|
52
|
+
## Submitting Incomplete Solutions
|
|
53
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,80 @@
|
|
|
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
|
+
## Getting Started
|
|
46
|
+
|
|
47
|
+
Make sure you have read [D page](http://exercism.io/languages/dlang) on
|
|
48
|
+
exercism.io. This covers the basic information on setting up the development
|
|
49
|
+
environment expected by the exercises.
|
|
50
|
+
|
|
51
|
+
## Passing the Tests
|
|
52
|
+
|
|
53
|
+
Get the first test compiling, linking and passing by following the [three
|
|
54
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
55
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
56
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
57
|
+
just enough code to get the test to pass. Once you've done that,
|
|
58
|
+
uncomment the next test by moving the following line past the next test.
|
|
59
|
+
|
|
60
|
+
```D
|
|
61
|
+
static if (all_tests_enabled)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
This may result in compile errors as new constructs may be invoked that
|
|
65
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
66
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
67
|
+
refactor your implementation for readability and expressiveness and then
|
|
68
|
+
go on to the next test.
|
|
69
|
+
|
|
70
|
+
Try to use standard D facilities in preference to writing your own
|
|
71
|
+
low-level algorithms or facilities by hand. [DRefLanguage](https://dlang.org/spec/spec.html)
|
|
72
|
+
and [DReference](https://dlang.org/phobos/index.html) are references to the D language and D standard library.
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
## Source
|
|
76
|
+
|
|
77
|
+
The Roman Numeral Kata [http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals](http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals)
|
|
78
|
+
|
|
79
|
+
## Submitting Incomplete Solutions
|
|
80
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
## Getting Started
|
|
24
|
+
|
|
25
|
+
Make sure you have read [D page](http://exercism.io/languages/dlang) on
|
|
26
|
+
exercism.io. This covers the basic information on setting up the development
|
|
27
|
+
environment expected by the exercises.
|
|
28
|
+
|
|
29
|
+
## Passing the Tests
|
|
30
|
+
|
|
31
|
+
Get the first test compiling, linking and passing by following the [three
|
|
32
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
33
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
34
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
35
|
+
just enough code to get the test to pass. Once you've done that,
|
|
36
|
+
uncomment the next test by moving the following line past the next test.
|
|
37
|
+
|
|
38
|
+
```D
|
|
39
|
+
static if (all_tests_enabled)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
This may result in compile errors as new constructs may be invoked that
|
|
43
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
44
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
45
|
+
refactor your implementation for readability and expressiveness and then
|
|
46
|
+
go on to the next test.
|
|
47
|
+
|
|
48
|
+
Try to use standard D facilities in preference to writing your own
|
|
49
|
+
low-level algorithms or facilities by hand. [DRefLanguage](https://dlang.org/spec/spec.html)
|
|
50
|
+
and [DReference](https://dlang.org/phobos/index.html) are references to the D language and D standard library.
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## Source
|
|
54
|
+
|
|
55
|
+
A subset of the Problem 8 at Project Euler [http://projecteuler.net/problem=8](http://projecteuler.net/problem=8)
|
|
56
|
+
|
|
57
|
+
## Submitting Incomplete Solutions
|
|
58
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Triangle
|
|
2
|
+
|
|
3
|
+
Determine if a triangle is equilateral, isosceles, or scalene.
|
|
4
|
+
|
|
5
|
+
An _equilateral_ triangle has all three sides the same length.<br/>
|
|
6
|
+
An _isosceles_ triangle has at least two sides the same length. (It is sometimes
|
|
7
|
+
specified as having exactly two sides the same length, but for the purposes of
|
|
8
|
+
this exercise we'll say at least two.)<br/>
|
|
9
|
+
A _scalene_ triangle has all sides of different lengths.
|
|
10
|
+
|
|
11
|
+
## Note
|
|
12
|
+
|
|
13
|
+
For a shape to be a triangle at all, all sides have to be of length > 0, and
|
|
14
|
+
the sum of the lengths of any two sides must be greater than or equal to the
|
|
15
|
+
length of the third side. See [Triangle Inequality](https://en.wikipedia.org/wiki/Triangle_inequality).
|
|
16
|
+
|
|
17
|
+
## Dig Deeper
|
|
18
|
+
|
|
19
|
+
The case where the sum of the lengths of two sides _equals_ that of the
|
|
20
|
+
third is known as a _degenerate_ triangle - it has zero area and looks like
|
|
21
|
+
a single line. Feel free to add your own code/tests to check for degenerate triangles.
|
|
22
|
+
## Getting Started
|
|
23
|
+
|
|
24
|
+
Make sure you have read [D page](http://exercism.io/languages/dlang) on
|
|
25
|
+
exercism.io. This covers the basic information on setting up the development
|
|
26
|
+
environment expected by the exercises.
|
|
27
|
+
|
|
28
|
+
## Passing the Tests
|
|
29
|
+
|
|
30
|
+
Get the first test compiling, linking and passing by following the [three
|
|
31
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
32
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
33
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
34
|
+
just enough code to get the test to pass. Once you've done that,
|
|
35
|
+
uncomment the next test by moving the following line past the next test.
|
|
36
|
+
|
|
37
|
+
```D
|
|
38
|
+
static if (all_tests_enabled)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This may result in compile errors as new constructs may be invoked that
|
|
42
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
43
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
44
|
+
refactor your implementation for readability and expressiveness and then
|
|
45
|
+
go on to the next test.
|
|
46
|
+
|
|
47
|
+
Try to use standard D facilities in preference to writing your own
|
|
48
|
+
low-level algorithms or facilities by hand. [DRefLanguage](https://dlang.org/spec/spec.html)
|
|
49
|
+
and [DReference](https://dlang.org/phobos/index.html) are references to the D language and D standard library.
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
## Source
|
|
53
|
+
|
|
54
|
+
The Ruby Koans triangle project, parts 1 & 2 [http://rubykoans.com](http://rubykoans.com)
|
|
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,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"maintainers": [
|
|
3
|
+
{
|
|
4
|
+
"github_username": "kotp",
|
|
5
|
+
"show_on_website": false,
|
|
6
|
+
"alumnus": false,
|
|
7
|
+
"name": null,
|
|
8
|
+
"bio": null,
|
|
9
|
+
"link_text": null,
|
|
10
|
+
"link_url": null,
|
|
11
|
+
"avatar_url": null
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"github_username": "rpottsoh",
|
|
15
|
+
"show_on_website": true,
|
|
16
|
+
"alumnus": false,
|
|
17
|
+
"name": null,
|
|
18
|
+
"bio": null,
|
|
19
|
+
"link_text": null,
|
|
20
|
+
"link_url": null,
|
|
21
|
+
"avatar_url": null
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
|
25
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"maintainers": [
|
|
3
|
+
{
|
|
4
|
+
"github_username": "rchavarria",
|
|
5
|
+
"show_on_website": false,
|
|
6
|
+
"alumnus": false,
|
|
7
|
+
"name": null,
|
|
8
|
+
"bio": null,
|
|
9
|
+
"link_text": null,
|
|
10
|
+
"link_url": null,
|
|
11
|
+
"avatar_url": null
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"github_username": "tejasbubane",
|
|
15
|
+
"show_on_website": false,
|
|
16
|
+
"alumnus": false,
|
|
17
|
+
"name": null,
|
|
18
|
+
"bio": null,
|
|
19
|
+
"link_text": null,
|
|
20
|
+
"link_url": null,
|
|
21
|
+
"avatar_url": null
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"github_username": "matthewmorgan",
|
|
25
|
+
"show_on_website": false,
|
|
26
|
+
"alumnus": false,
|
|
27
|
+
"name": null,
|
|
28
|
+
"bio": null,
|
|
29
|
+
"link_text": null,
|
|
30
|
+
"link_url": null,
|
|
31
|
+
"avatar_url": null
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
|
35
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# {{ .Spec.Name }}
|
|
2
|
+
|
|
3
|
+
{{ .Spec.Description -}}
|
|
4
|
+
{{- with .Hints }}
|
|
5
|
+
{{ . }}
|
|
6
|
+
{{ end }}
|
|
7
|
+
{{- with .TrackInsert }}
|
|
8
|
+
{{ . }}
|
|
9
|
+
{{ end }}
|
|
10
|
+
{{- with .Spec.Credits -}}
|
|
11
|
+
## Source
|
|
12
|
+
|
|
13
|
+
{{ . }}
|
|
14
|
+
{{ end }}
|
|
15
|
+
## Submitting Incomplete Solutions
|
|
16
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
data/tracks/elisp/config.json
CHANGED
|
@@ -1,148 +1,205 @@
|
|
|
1
1
|
{
|
|
2
2
|
"language": "Emacs Lisp",
|
|
3
3
|
"active": true,
|
|
4
|
-
"deprecated": [
|
|
5
|
-
|
|
6
|
-
],
|
|
7
4
|
"foregone": [
|
|
8
5
|
|
|
9
6
|
],
|
|
10
7
|
"exercises": [
|
|
11
8
|
{
|
|
12
|
-
"
|
|
9
|
+
"uuid": "c4fdc935-885b-44bd-84e4-fae4a09e8c39",
|
|
13
10
|
"slug": "hello-world",
|
|
11
|
+
"core": false,
|
|
12
|
+
"unlocked_by": null,
|
|
13
|
+
"difficulty": 1,
|
|
14
14
|
"topics": [
|
|
15
15
|
|
|
16
16
|
]
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
"
|
|
19
|
+
"uuid": "c02c7392-9478-4cfd-81eb-0cb8ebe78fe5",
|
|
20
20
|
"slug": "bob",
|
|
21
|
+
"core": false,
|
|
22
|
+
"unlocked_by": null,
|
|
23
|
+
"difficulty": 1,
|
|
21
24
|
"topics": [
|
|
22
25
|
|
|
23
26
|
]
|
|
24
27
|
},
|
|
25
28
|
{
|
|
26
|
-
"
|
|
29
|
+
"uuid": "7b421b14-c33c-41a6-9e7e-4f9b6fbe6fcc",
|
|
27
30
|
"slug": "difference-of-squares",
|
|
31
|
+
"core": false,
|
|
32
|
+
"unlocked_by": null,
|
|
33
|
+
"difficulty": 1,
|
|
28
34
|
"topics": [
|
|
29
35
|
|
|
30
36
|
]
|
|
31
37
|
},
|
|
32
38
|
{
|
|
33
|
-
"
|
|
39
|
+
"uuid": "e9e27a75-143a-439f-98d0-a604724a7af2",
|
|
34
40
|
"slug": "gigasecond",
|
|
41
|
+
"core": false,
|
|
42
|
+
"unlocked_by": null,
|
|
43
|
+
"difficulty": 1,
|
|
35
44
|
"topics": [
|
|
36
45
|
|
|
37
46
|
]
|
|
38
47
|
},
|
|
39
48
|
{
|
|
40
|
-
"
|
|
49
|
+
"uuid": "2bfb508e-7ceb-4ae1-8316-1e2daf771807",
|
|
41
50
|
"slug": "hamming",
|
|
51
|
+
"core": false,
|
|
52
|
+
"unlocked_by": null,
|
|
53
|
+
"difficulty": 1,
|
|
42
54
|
"topics": [
|
|
43
55
|
|
|
44
56
|
]
|
|
45
57
|
},
|
|
46
58
|
{
|
|
47
|
-
"
|
|
59
|
+
"uuid": "d8906a7e-9d7e-4e8e-aff0-da877291d8dc",
|
|
48
60
|
"slug": "anagram",
|
|
61
|
+
"core": false,
|
|
62
|
+
"unlocked_by": null,
|
|
63
|
+
"difficulty": 1,
|
|
49
64
|
"topics": [
|
|
50
65
|
|
|
51
66
|
]
|
|
52
67
|
},
|
|
53
68
|
{
|
|
54
|
-
"
|
|
69
|
+
"uuid": "7307e13e-7a18-4654-8df4-96951d4dccc6",
|
|
55
70
|
"slug": "binary",
|
|
71
|
+
"core": false,
|
|
72
|
+
"unlocked_by": null,
|
|
73
|
+
"difficulty": 1,
|
|
56
74
|
"topics": [
|
|
57
75
|
|
|
58
76
|
]
|
|
59
77
|
},
|
|
60
78
|
{
|
|
61
|
-
"
|
|
79
|
+
"uuid": "84eaff19-cb25-46af-a34e-1379e692e57b",
|
|
62
80
|
"slug": "leap",
|
|
81
|
+
"core": false,
|
|
82
|
+
"unlocked_by": null,
|
|
83
|
+
"difficulty": 1,
|
|
63
84
|
"topics": [
|
|
64
85
|
|
|
65
86
|
]
|
|
66
87
|
},
|
|
67
88
|
{
|
|
68
|
-
"
|
|
89
|
+
"uuid": "e0d7220f-5d3a-4f10-842e-3d49df714cac",
|
|
69
90
|
"slug": "allergies",
|
|
91
|
+
"core": false,
|
|
92
|
+
"unlocked_by": null,
|
|
93
|
+
"difficulty": 1,
|
|
70
94
|
"topics": [
|
|
71
95
|
|
|
72
96
|
]
|
|
73
97
|
},
|
|
74
98
|
{
|
|
75
|
-
"
|
|
99
|
+
"uuid": "55bc8c2a-1db3-4d26-b7c6-a778b61bf46b",
|
|
76
100
|
"slug": "robot-name",
|
|
101
|
+
"core": false,
|
|
102
|
+
"unlocked_by": null,
|
|
103
|
+
"difficulty": 1,
|
|
77
104
|
"topics": [
|
|
78
105
|
|
|
79
106
|
]
|
|
80
107
|
},
|
|
81
108
|
{
|
|
82
|
-
"
|
|
109
|
+
"uuid": "7b6767b9-2efc-414d-83f7-def9c371d63d",
|
|
83
110
|
"slug": "rna-transcription",
|
|
111
|
+
"core": false,
|
|
112
|
+
"unlocked_by": null,
|
|
113
|
+
"difficulty": 1,
|
|
84
114
|
"topics": [
|
|
85
115
|
|
|
86
116
|
]
|
|
87
117
|
},
|
|
88
118
|
{
|
|
89
|
-
"
|
|
119
|
+
"uuid": "89125ff6-f94b-46a4-9a5d-84539674238d",
|
|
90
120
|
"slug": "atbash-cipher",
|
|
121
|
+
"core": false,
|
|
122
|
+
"unlocked_by": null,
|
|
123
|
+
"difficulty": 1,
|
|
91
124
|
"topics": [
|
|
92
125
|
|
|
93
126
|
]
|
|
94
127
|
},
|
|
95
128
|
{
|
|
96
|
-
"
|
|
129
|
+
"uuid": "9a97c992-3da0-4f6d-b2f6-1f2683417e3b",
|
|
97
130
|
"slug": "raindrops",
|
|
131
|
+
"core": false,
|
|
132
|
+
"unlocked_by": null,
|
|
133
|
+
"difficulty": 1,
|
|
98
134
|
"topics": [
|
|
99
135
|
|
|
100
136
|
]
|
|
101
137
|
},
|
|
102
138
|
{
|
|
103
|
-
"
|
|
139
|
+
"uuid": "c4875bc5-e295-4782-99c7-cb3370ac8e08",
|
|
104
140
|
"slug": "roman-numerals",
|
|
141
|
+
"core": false,
|
|
142
|
+
"unlocked_by": null,
|
|
143
|
+
"difficulty": 1,
|
|
105
144
|
"topics": [
|
|
106
145
|
|
|
107
146
|
]
|
|
108
147
|
},
|
|
109
148
|
{
|
|
110
|
-
"
|
|
149
|
+
"uuid": "30971b02-79fc-40a1-aa70-ada3fec85548",
|
|
111
150
|
"slug": "perfect-numbers",
|
|
151
|
+
"core": false,
|
|
152
|
+
"unlocked_by": null,
|
|
153
|
+
"difficulty": 1,
|
|
112
154
|
"topics": [
|
|
113
155
|
|
|
114
156
|
]
|
|
115
157
|
},
|
|
116
158
|
{
|
|
117
|
-
"
|
|
159
|
+
"uuid": "d8f4c530-02f0-44d3-b5b8-858fec4b6a9d",
|
|
118
160
|
"slug": "etl",
|
|
161
|
+
"core": false,
|
|
162
|
+
"unlocked_by": null,
|
|
163
|
+
"difficulty": 1,
|
|
119
164
|
"topics": [
|
|
120
165
|
|
|
121
166
|
]
|
|
122
167
|
},
|
|
123
168
|
{
|
|
124
|
-
"
|
|
169
|
+
"uuid": "1a3c64b1-8447-451f-985d-f7bd6d42bdb6",
|
|
125
170
|
"slug": "word-count",
|
|
171
|
+
"core": false,
|
|
172
|
+
"unlocked_by": null,
|
|
173
|
+
"difficulty": 1,
|
|
126
174
|
"topics": [
|
|
127
175
|
|
|
128
176
|
]
|
|
129
177
|
},
|
|
130
178
|
{
|
|
131
|
-
"
|
|
179
|
+
"uuid": "aaff28dd-718b-48d4-b507-a0b9b01bb6ad",
|
|
132
180
|
"slug": "nucleotide-count",
|
|
181
|
+
"core": false,
|
|
182
|
+
"unlocked_by": null,
|
|
183
|
+
"difficulty": 1,
|
|
133
184
|
"topics": [
|
|
134
185
|
|
|
135
186
|
]
|
|
136
187
|
},
|
|
137
188
|
{
|
|
138
|
-
"
|
|
189
|
+
"uuid": "c211045e-da97-479d-9df4-5d812573e2d0",
|
|
139
190
|
"slug": "phone-number",
|
|
191
|
+
"core": false,
|
|
192
|
+
"unlocked_by": null,
|
|
193
|
+
"difficulty": 1,
|
|
140
194
|
"topics": [
|
|
141
195
|
|
|
142
196
|
]
|
|
143
197
|
},
|
|
144
198
|
{
|
|
199
|
+
"uuid": "d219aab6-11ec-4e0c-b041-f06c8d523946",
|
|
145
200
|
"slug": "grains",
|
|
201
|
+
"core": false,
|
|
202
|
+
"unlocked_by": null,
|
|
146
203
|
"difficulty": 1,
|
|
147
204
|
"topics": [
|
|
148
205
|
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
## Source
|
|
33
|
+
|
|
34
|
+
Jumpstart Lab Warm-up [http://jumpstartlab.com](http://jumpstartlab.com)
|
|
35
|
+
|
|
36
|
+
## Submitting Incomplete Solutions
|
|
37
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
## Source
|
|
9
|
+
|
|
10
|
+
Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
|
|
11
|
+
|
|
12
|
+
## Submitting Incomplete Solutions
|
|
13
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
## Source
|
|
30
|
+
|
|
31
|
+
Wikipedia [http://en.wikipedia.org/wiki/Atbash](http://en.wikipedia.org/wiki/Atbash)
|
|
32
|
+
|
|
33
|
+
## Submitting Incomplete Solutions
|
|
34
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Binary
|
|
2
|
+
|
|
3
|
+
Convert a binary number, represented as a string (e.g. '101010'), to its decimal equivalent using first principles.
|
|
4
|
+
|
|
5
|
+
Implement binary to decimal conversion. Given a binary input
|
|
6
|
+
string, your program should produce a decimal output. The
|
|
7
|
+
program should handle invalid inputs.
|
|
8
|
+
|
|
9
|
+
## Note
|
|
10
|
+
- Implement the conversion yourself.
|
|
11
|
+
Do not use something else to perform the conversion for you.
|
|
12
|
+
|
|
13
|
+
## About Binary (Base-2)
|
|
14
|
+
Decimal is a base-10 system.
|
|
15
|
+
|
|
16
|
+
A number 23 in base 10 notation can be understood
|
|
17
|
+
as a linear combination of powers of 10:
|
|
18
|
+
|
|
19
|
+
- The rightmost digit gets multiplied by 10^0 = 1
|
|
20
|
+
- The next number gets multiplied by 10^1 = 10
|
|
21
|
+
- ...
|
|
22
|
+
- The *n*th number gets multiplied by 10^*(n-1)*.
|
|
23
|
+
- All these values are summed.
|
|
24
|
+
|
|
25
|
+
So: `23 => 2*10^1 + 3*10^0 => 2*10 + 3*1 = 23 base 10`
|
|
26
|
+
|
|
27
|
+
Binary is similar, but uses powers of 2 rather than powers of 10.
|
|
28
|
+
|
|
29
|
+
So: `101 => 1*2^2 + 0*2^1 + 1*2^0 => 1*4 + 0*2 + 1*1 => 4 + 1 => 5 base 10`.
|
|
30
|
+
## Source
|
|
31
|
+
|
|
32
|
+
All of Computer Science [http://www.wolframalpha.com/input/?i=binary&a=*C.binary-_*MathWorld-](http://www.wolframalpha.com/input/?i=binary&a=*C.binary-_*MathWorld-)
|
|
33
|
+
|
|
34
|
+
## Submitting Incomplete Solutions
|
|
35
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|