trackler 2.2.1.4 → 2.2.1.5
Sign up to get free protection for your applications and to get access to all the features.
- 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,62 @@
|
|
1
|
+
# Meetup
|
2
|
+
|
3
|
+
Calculate the date of meetups.
|
4
|
+
|
5
|
+
Typically meetups happen on the same day of the week. In this exercise, you will take
|
6
|
+
a description of a meetup date, and return the actual meetup date.
|
7
|
+
|
8
|
+
Examples of general descriptions are:
|
9
|
+
|
10
|
+
- the first Monday of January 2017
|
11
|
+
- the third Tuesday of January 2017
|
12
|
+
- the Wednesteenth of January 2017
|
13
|
+
- the last Thursday of January 2017
|
14
|
+
|
15
|
+
Note that "Monteenth", "Tuesteenth", etc are all made up words. There
|
16
|
+
was a meetup whose members realized that there are exactly 7 numbered days in a month that
|
17
|
+
end in '-teenth'. Therefore, one is guaranteed that each day of the week
|
18
|
+
(Monday, Tuesday, ...) will have exactly one date that is named with '-teenth'
|
19
|
+
in every month.
|
20
|
+
|
21
|
+
Given examples of a meetup dates, each containing a month, day, year, and descriptor
|
22
|
+
(first, second, teenth, etc), calculate the date of the actual meetup.
|
23
|
+
For example, if given "First Monday of January 2017", the correct meetup date is 2017/1/2
|
24
|
+
|
25
|
+
|
26
|
+
## Getting Started
|
27
|
+
|
28
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
29
|
+
exercism.io. This covers the basic information on setting up the development
|
30
|
+
environment expected by the exercises.
|
31
|
+
|
32
|
+
## Passing the Tests
|
33
|
+
|
34
|
+
Get the first test compiling, linking and passing by following the [three
|
35
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
36
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
37
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
38
|
+
just enough code to get the test to pass. Once you've done that,
|
39
|
+
uncomment the next test by moving the following line past the next test.
|
40
|
+
|
41
|
+
```C++
|
42
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
43
|
+
```
|
44
|
+
|
45
|
+
This may result in compile errors as new constructs may be invoked that
|
46
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
47
|
+
to get a failing test, then change the code minimally to pass the test,
|
48
|
+
refactor your implementation for readability and expressiveness and then
|
49
|
+
go on to the next test.
|
50
|
+
|
51
|
+
Try to use standard C++11 facilities in preference to writing your own
|
52
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
53
|
+
is a wiki reference to the C++ language and standard library. If you
|
54
|
+
are new to C++, but have programmed in C, beware of
|
55
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
56
|
+
|
57
|
+
## Source
|
58
|
+
|
59
|
+
Jeremy Hinegardner mentioned a Boulder meetup that happens on the Wednesteenth of every month [https://twitter.com/copiousfreetime](https://twitter.com/copiousfreetime)
|
60
|
+
|
61
|
+
## Submitting Incomplete Solutions
|
62
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# Nth Prime
|
2
|
+
|
3
|
+
Given a number n, determine what the nth prime is.
|
4
|
+
|
5
|
+
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that
|
6
|
+
the 6th prime is 13.
|
7
|
+
|
8
|
+
If your language provides methods in the standard library to deal with prime
|
9
|
+
numbers, pretend they don't exist and implement them yourself.
|
10
|
+
|
11
|
+
## Getting Started
|
12
|
+
|
13
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
14
|
+
exercism.io. This covers the basic information on setting up the development
|
15
|
+
environment expected by the exercises.
|
16
|
+
|
17
|
+
## Passing the Tests
|
18
|
+
|
19
|
+
Get the first test compiling, linking and passing by following the [three
|
20
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
21
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
22
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
23
|
+
just enough code to get the test to pass. Once you've done that,
|
24
|
+
uncomment the next test by moving the following line past the next test.
|
25
|
+
|
26
|
+
```C++
|
27
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
28
|
+
```
|
29
|
+
|
30
|
+
This may result in compile errors as new constructs may be invoked that
|
31
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
32
|
+
to get a failing test, then change the code minimally to pass the test,
|
33
|
+
refactor your implementation for readability and expressiveness and then
|
34
|
+
go on to the next test.
|
35
|
+
|
36
|
+
Try to use standard C++11 facilities in preference to writing your own
|
37
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
38
|
+
is a wiki reference to the C++ language and standard library. If you
|
39
|
+
are new to C++, but have programmed in C, beware of
|
40
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
41
|
+
|
42
|
+
## Source
|
43
|
+
|
44
|
+
A variation on Problem 7 at Project Euler [http://projecteuler.net/problem=7](http://projecteuler.net/problem=7)
|
45
|
+
|
46
|
+
## Submitting Incomplete Solutions
|
47
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# Nucleotide Count
|
2
|
+
|
3
|
+
Given a DNA string, compute how many times each nucleotide occurs in the string.
|
4
|
+
|
5
|
+
DNA is represented by an alphabet of the following symbols: 'A', 'C',
|
6
|
+
'G', and 'T'.
|
7
|
+
|
8
|
+
Each symbol represents a nucleotide, which is a fancy name for the
|
9
|
+
particular molecules that happen to make up a large part of DNA.
|
10
|
+
|
11
|
+
Shortest intro to biochemistry EVAR:
|
12
|
+
|
13
|
+
- twigs are to birds nests as
|
14
|
+
- nucleotides are to DNA and RNA as
|
15
|
+
- amino acids are to proteins as
|
16
|
+
- sugar is to starch as
|
17
|
+
- oh crap lipids
|
18
|
+
|
19
|
+
I'm not going to talk about lipids because they're crazy complex.
|
20
|
+
|
21
|
+
So back to nucleotides.
|
22
|
+
|
23
|
+
DNA contains four types of them: adenine (`A`), cytosine (`C`), guanine
|
24
|
+
(`G`), and thymine (`T`).
|
25
|
+
|
26
|
+
RNA contains a slightly different set of nucleotides, but we don't care
|
27
|
+
about that for now.
|
28
|
+
|
29
|
+
## Getting Started
|
30
|
+
|
31
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
32
|
+
exercism.io. This covers the basic information on setting up the development
|
33
|
+
environment expected by the exercises.
|
34
|
+
|
35
|
+
## Passing the Tests
|
36
|
+
|
37
|
+
Get the first test compiling, linking and passing by following the [three
|
38
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
39
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
40
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
41
|
+
just enough code to get the test to pass. Once you've done that,
|
42
|
+
uncomment the next test by moving the following line past the next test.
|
43
|
+
|
44
|
+
```C++
|
45
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
46
|
+
```
|
47
|
+
|
48
|
+
This may result in compile errors as new constructs may be invoked that
|
49
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
50
|
+
to get a failing test, then change the code minimally to pass the test,
|
51
|
+
refactor your implementation for readability and expressiveness and then
|
52
|
+
go on to the next test.
|
53
|
+
|
54
|
+
Try to use standard C++11 facilities in preference to writing your own
|
55
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
56
|
+
is a wiki reference to the C++ language and standard library. If you
|
57
|
+
are new to C++, but have programmed in C, beware of
|
58
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
59
|
+
|
60
|
+
## Source
|
61
|
+
|
62
|
+
The Calculating DNA Nucleotides_problem at Rosalind [http://rosalind.info/problems/dna/](http://rosalind.info/problems/dna/)
|
63
|
+
|
64
|
+
## Submitting Incomplete Solutions
|
65
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,66 @@
|
|
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
|
+
## Getting Started
|
31
|
+
|
32
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
33
|
+
exercism.io. This covers the basic information on setting up the development
|
34
|
+
environment expected by the exercises.
|
35
|
+
|
36
|
+
## Passing the Tests
|
37
|
+
|
38
|
+
Get the first test compiling, linking and passing by following the [three
|
39
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
40
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
41
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
42
|
+
just enough code to get the test to pass. Once you've done that,
|
43
|
+
uncomment the next test by moving the following line past the next test.
|
44
|
+
|
45
|
+
```C++
|
46
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
47
|
+
```
|
48
|
+
|
49
|
+
This may result in compile errors as new constructs may be invoked that
|
50
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
51
|
+
to get a failing test, then change the code minimally to pass the test,
|
52
|
+
refactor your implementation for readability and expressiveness and then
|
53
|
+
go on to the next test.
|
54
|
+
|
55
|
+
Try to use standard C++11 facilities in preference to writing your own
|
56
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
57
|
+
is a wiki reference to the C++ language and standard library. If you
|
58
|
+
are new to C++, but have programmed in C, beware of
|
59
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
60
|
+
|
61
|
+
## Source
|
62
|
+
|
63
|
+
Event Manager by JumpstartLab [http://tutorials.jumpstartlab.com/projects/eventmanager.html](http://tutorials.jumpstartlab.com/projects/eventmanager.html)
|
64
|
+
|
65
|
+
## Submitting Incomplete Solutions
|
66
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# Prime Factors
|
2
|
+
|
3
|
+
Compute the prime factors of a given natural number.
|
4
|
+
|
5
|
+
A prime number is only evenly divisible by itself and 1.
|
6
|
+
|
7
|
+
Note that 1 is not a prime number.
|
8
|
+
|
9
|
+
## Example
|
10
|
+
|
11
|
+
What are the prime factors of 60?
|
12
|
+
|
13
|
+
- Our first divisor is 2. 2 goes into 60, leaving 30.
|
14
|
+
- 2 goes into 30, leaving 15.
|
15
|
+
- 2 doesn't go cleanly into 15. So let's move on to our next divisor, 3.
|
16
|
+
- 3 goes cleanly into 15, leaving 5.
|
17
|
+
- 3 does not go cleanly into 5. The next possible factor is 4.
|
18
|
+
- 4 does not go cleanly into 5. The next possible factor is 5.
|
19
|
+
- 5 does go cleanly into 5.
|
20
|
+
- We're left only with 1, so now, we're done.
|
21
|
+
|
22
|
+
Our successful divisors in that computation represent the list of prime
|
23
|
+
factors of 60: 2, 2, 3, and 5.
|
24
|
+
|
25
|
+
You can check this yourself:
|
26
|
+
|
27
|
+
- 2 * 2 * 3 * 5
|
28
|
+
- = 4 * 15
|
29
|
+
- = 60
|
30
|
+
- Success!
|
31
|
+
|
32
|
+
## Getting Started
|
33
|
+
|
34
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
35
|
+
exercism.io. This covers the basic information on setting up the development
|
36
|
+
environment expected by the exercises.
|
37
|
+
|
38
|
+
## Passing the Tests
|
39
|
+
|
40
|
+
Get the first test compiling, linking and passing by following the [three
|
41
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
42
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
43
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
44
|
+
just enough code to get the test to pass. Once you've done that,
|
45
|
+
uncomment the next test by moving the following line past the next test.
|
46
|
+
|
47
|
+
```C++
|
48
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
49
|
+
```
|
50
|
+
|
51
|
+
This may result in compile errors as new constructs may be invoked that
|
52
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
53
|
+
to get a failing test, then change the code minimally to pass the test,
|
54
|
+
refactor your implementation for readability and expressiveness and then
|
55
|
+
go on to the next test.
|
56
|
+
|
57
|
+
Try to use standard C++11 facilities in preference to writing your own
|
58
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
59
|
+
is a wiki reference to the C++ language and standard library. If you
|
60
|
+
are new to C++, but have programmed in C, beware of
|
61
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
62
|
+
|
63
|
+
## Source
|
64
|
+
|
65
|
+
The Prime Factors Kata by Uncle Bob [http://butunclebob.com/ArticleS.UncleBob.ThePrimeFactorsKata](http://butunclebob.com/ArticleS.UncleBob.ThePrimeFactorsKata)
|
66
|
+
|
67
|
+
## Submitting Incomplete Solutions
|
68
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# Queen Attack
|
2
|
+
|
3
|
+
Given the position of two queens on a chess board, indicate whether or not they
|
4
|
+
are positioned so that they can attack each other.
|
5
|
+
|
6
|
+
In the game of chess, a queen can attack pieces which are on the same
|
7
|
+
row, column, or diagonal.
|
8
|
+
|
9
|
+
A chessboard can be represented by an 8 by 8 array.
|
10
|
+
|
11
|
+
So if you're told the white queen is at (2, 3) and the black queen at
|
12
|
+
(5, 6), then you'd know you've got a set-up like so:
|
13
|
+
|
14
|
+
```plain
|
15
|
+
_ _ _ _ _ _ _ _
|
16
|
+
_ _ _ _ _ _ _ _
|
17
|
+
_ _ _ W _ _ _ _
|
18
|
+
_ _ _ _ _ _ _ _
|
19
|
+
_ _ _ _ _ _ _ _
|
20
|
+
_ _ _ _ _ _ B _
|
21
|
+
_ _ _ _ _ _ _ _
|
22
|
+
_ _ _ _ _ _ _ _
|
23
|
+
```
|
24
|
+
|
25
|
+
You'd also be able to answer whether the queens can attack each other.
|
26
|
+
In this case, that answer would be yes, they can, because both pieces
|
27
|
+
share a diagonal.
|
28
|
+
|
29
|
+
## Getting Started
|
30
|
+
|
31
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
32
|
+
exercism.io. This covers the basic information on setting up the development
|
33
|
+
environment expected by the exercises.
|
34
|
+
|
35
|
+
## Passing the Tests
|
36
|
+
|
37
|
+
Get the first test compiling, linking and passing by following the [three
|
38
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
39
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
40
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
41
|
+
just enough code to get the test to pass. Once you've done that,
|
42
|
+
uncomment the next test by moving the following line past the next test.
|
43
|
+
|
44
|
+
```C++
|
45
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
46
|
+
```
|
47
|
+
|
48
|
+
This may result in compile errors as new constructs may be invoked that
|
49
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
50
|
+
to get a failing test, then change the code minimally to pass the test,
|
51
|
+
refactor your implementation for readability and expressiveness and then
|
52
|
+
go on to the next test.
|
53
|
+
|
54
|
+
Try to use standard C++11 facilities in preference to writing your own
|
55
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
56
|
+
is a wiki reference to the C++ language and standard library. If you
|
57
|
+
are new to C++, but have programmed in C, beware of
|
58
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
59
|
+
|
60
|
+
## Source
|
61
|
+
|
62
|
+
J Dalbey's Programming Practice problems [http://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html](http://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html)
|
63
|
+
|
64
|
+
## Submitting Incomplete Solutions
|
65
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,56 @@
|
|
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
|
+
## Getting Started
|
21
|
+
|
22
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
23
|
+
exercism.io. This covers the basic information on setting up the development
|
24
|
+
environment expected by the exercises.
|
25
|
+
|
26
|
+
## Passing the Tests
|
27
|
+
|
28
|
+
Get the first test compiling, linking and passing by following the [three
|
29
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
30
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
31
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
32
|
+
just enough code to get the test to pass. Once you've done that,
|
33
|
+
uncomment the next test by moving the following line past the next test.
|
34
|
+
|
35
|
+
```C++
|
36
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
37
|
+
```
|
38
|
+
|
39
|
+
This may result in compile errors as new constructs may be invoked that
|
40
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
41
|
+
to get a failing test, then change the code minimally to pass the test,
|
42
|
+
refactor your implementation for readability and expressiveness and then
|
43
|
+
go on to the next test.
|
44
|
+
|
45
|
+
Try to use standard C++11 facilities in preference to writing your own
|
46
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
47
|
+
is a wiki reference to the C++ language and standard library. If you
|
48
|
+
are new to C++, but have programmed in C, beware of
|
49
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
50
|
+
|
51
|
+
## Source
|
52
|
+
|
53
|
+
A variation on a famous interview question intended to weed out potential candidates. [http://jumpstartlab.com](http://jumpstartlab.com)
|
54
|
+
|
55
|
+
## Submitting Incomplete Solutions
|
56
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,57 @@
|
|
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
|
+
## Getting Started
|
22
|
+
|
23
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
24
|
+
exercism.io. This covers the basic information on setting up the development
|
25
|
+
environment expected by the exercises.
|
26
|
+
|
27
|
+
## Passing the Tests
|
28
|
+
|
29
|
+
Get the first test compiling, linking and passing by following the [three
|
30
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
31
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
32
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
33
|
+
just enough code to get the test to pass. Once you've done that,
|
34
|
+
uncomment the next test by moving the following line past the next test.
|
35
|
+
|
36
|
+
```C++
|
37
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
38
|
+
```
|
39
|
+
|
40
|
+
This may result in compile errors as new constructs may be invoked that
|
41
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
42
|
+
to get a failing test, then change the code minimally to pass the test,
|
43
|
+
refactor your implementation for readability and expressiveness and then
|
44
|
+
go on to the next test.
|
45
|
+
|
46
|
+
Try to use standard C++11 facilities in preference to writing your own
|
47
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
48
|
+
is a wiki reference to the C++ language and standard library. If you
|
49
|
+
are new to C++, but have programmed in C, beware of
|
50
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
51
|
+
|
52
|
+
## Source
|
53
|
+
|
54
|
+
Rosalind [http://rosalind.info/problems/rna](http://rosalind.info/problems/rna)
|
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
|
+
# 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 [the C++ page](http://exercism.io/languages/cpp) 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
|
+
```C++
|
34
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
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 C++11 facilities in preference to writing your own
|
44
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
45
|
+
is a wiki reference to the C++ language and standard library. If you
|
46
|
+
are new to C++, but have programmed in C, beware of
|
47
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
48
|
+
|
49
|
+
## Source
|
50
|
+
|
51
|
+
A debugging session with Paul Blackwell at gSchool. [http://gschool.it](http://gschool.it)
|
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,81 @@
|
|
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 [the C++ page](http://exercism.io/languages/cpp) 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
|
+
```C++
|
61
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
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 C++11 facilities in preference to writing your own
|
71
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
72
|
+
is a wiki reference to the C++ language and standard library. If you
|
73
|
+
are new to C++, but have programmed in C, beware of
|
74
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
75
|
+
|
76
|
+
## Source
|
77
|
+
|
78
|
+
The Roman Numeral Kata [http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals](http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals)
|
79
|
+
|
80
|
+
## Submitting Incomplete Solutions
|
81
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|