trackler 2.2.0.2 → 2.2.0.3
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/fixtures/deprecation-fixtures/tracks/repo-nope/config.json +2 -0
- data/fixtures/deprecation-fixtures/tracks/repo-yepp/config.json +3 -0
- data/lib/trackler/track.rb +1 -1
- data/lib/trackler/version.rb +1 -1
- data/tracks/csharp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/csharp/exercises/accumulate/README.md +44 -0
- data/tracks/csharp/exercises/acronym/README.md +21 -0
- data/tracks/csharp/exercises/all-your-base/README.md +41 -0
- data/tracks/csharp/exercises/allergies/README.md +46 -0
- data/tracks/csharp/exercises/alphametics/README.md +48 -0
- data/tracks/csharp/exercises/anagram/README.md +19 -0
- data/tracks/csharp/exercises/atbash-cipher/README.md +40 -0
- data/tracks/csharp/exercises/bank-account/README.md +41 -0
- data/tracks/csharp/exercises/beer-song/README.md +336 -0
- data/tracks/csharp/exercises/binary-search-tree/README.md +66 -0
- data/tracks/csharp/exercises/binary-search/README.md +47 -0
- data/tracks/csharp/exercises/bob/README.md +24 -0
- data/tracks/csharp/exercises/book-store/README.md +80 -0
- data/tracks/csharp/exercises/bowling/README.md +59 -0
- data/tracks/csharp/exercises/bracket-push/README.md +16 -0
- data/tracks/csharp/exercises/change/README.md +29 -0
- data/tracks/csharp/exercises/circular-buffer/README.md +56 -0
- data/tracks/csharp/exercises/clock/README.md +25 -0
- data/tracks/csharp/exercises/connect/README.md +40 -0
- data/tracks/csharp/exercises/crypto-square/README.md +80 -0
- data/tracks/csharp/exercises/custom-set/README.md +23 -0
- data/tracks/csharp/exercises/diamond/README.md +75 -0
- data/tracks/csharp/exercises/difference-of-squares/README.md +30 -0
- data/tracks/csharp/exercises/diffie-hellman/README.md +55 -0
- data/tracks/csharp/exercises/dominoes/README.md +24 -0
- data/tracks/csharp/exercises/dot-dsl/README.md +37 -0
- data/tracks/csharp/exercises/error-handling/README.md +19 -0
- data/tracks/csharp/exercises/etl/README.md +57 -0
- data/tracks/csharp/exercises/flatten-array/README.md +24 -0
- data/tracks/csharp/exercises/food-chain/README.md +80 -0
- data/tracks/csharp/exercises/forth/README.md +39 -0
- data/tracks/csharp/exercises/gigasecond/README.md +17 -0
- data/tracks/csharp/exercises/go-counting/README.md +43 -0
- data/tracks/csharp/exercises/grade-school/README.md +48 -0
- data/tracks/csharp/exercises/grains/README.md +40 -0
- data/tracks/csharp/exercises/grep/README.md +77 -0
- data/tracks/csharp/exercises/hamming/README.md +48 -0
- data/tracks/csharp/exercises/hangman/README.md +32 -0
- data/tracks/csharp/exercises/hello-world/README.md +27 -0
- data/tracks/csharp/exercises/house/README.md +123 -0
- data/tracks/csharp/exercises/isogram/README.md +25 -0
- data/tracks/csharp/exercises/kindergarten-garden/README.md +72 -0
- data/tracks/csharp/exercises/largest-series-product/README.md +26 -0
- data/tracks/csharp/exercises/leap/README.md +39 -0
- data/tracks/csharp/exercises/ledger/README.md +24 -0
- data/tracks/csharp/exercises/linked-list/README.md +40 -0
- data/tracks/csharp/exercises/list-ops/README.md +19 -0
- data/tracks/csharp/exercises/luhn/README.md +77 -0
- data/tracks/csharp/exercises/markdown/README.md +28 -0
- data/tracks/csharp/exercises/matrix/README.md +51 -0
- data/tracks/csharp/exercises/meetup/README.md +36 -0
- data/tracks/csharp/exercises/minesweeper/README.md +36 -0
- data/tracks/csharp/exercises/nth-prime/README.md +29 -0
- data/tracks/csharp/exercises/nucleotide-count/README.md +43 -0
- data/tracks/csharp/exercises/ocr-numbers/README.md +91 -0
- data/tracks/csharp/exercises/palindrome-products/README.md +51 -0
- data/tracks/csharp/exercises/pangram/README.md +21 -0
- data/tracks/csharp/exercises/parallel-letter-frequency/README.md +17 -0
- data/tracks/csharp/exercises/pascals-triangle/README.md +27 -0
- data/tracks/csharp/exercises/perfect-numbers/README.md +30 -0
- data/tracks/csharp/exercises/phone-number/README.md +40 -0
- data/tracks/csharp/exercises/pig-latin/README.md +30 -0
- data/tracks/csharp/exercises/poker/README.md +18 -0
- data/tracks/csharp/exercises/pov/README.md +52 -0
- data/tracks/csharp/exercises/prime-factors/README.md +42 -0
- data/tracks/csharp/exercises/protein-translation/README.md +55 -0
- data/tracks/csharp/exercises/proverb/README.md +28 -0
- data/tracks/csharp/exercises/pythagorean-triplet/README.md +30 -0
- data/tracks/csharp/exercises/queen-attack/README.md +39 -0
- data/tracks/csharp/exercises/rail-fence-cipher/README.md +66 -0
- data/tracks/csharp/exercises/raindrops/README.md +30 -0
- data/tracks/csharp/exercises/react/README.md +29 -0
- data/tracks/csharp/exercises/rectangles/README.md +73 -0
- data/tracks/csharp/exercises/rna-transcription/README.md +31 -0
- data/tracks/csharp/exercises/robot-name/README.md +28 -0
- data/tracks/csharp/exercises/robot-simulator/README.md +40 -0
- data/tracks/csharp/exercises/roman-numerals/README.md +59 -0
- data/tracks/csharp/exercises/rotational-cipher/README.md +42 -0
- data/tracks/csharp/exercises/run-length-encoding/README.md +36 -0
- data/tracks/csharp/exercises/saddle-points/README.md +44 -0
- data/tracks/csharp/exercises/say/README.md +75 -0
- data/tracks/csharp/exercises/scale-generator/README.md +66 -0
- data/tracks/csharp/exercises/scrabble-score/README.md +50 -0
- data/tracks/csharp/exercises/secret-handshake/README.md +41 -0
- data/tracks/csharp/exercises/series/README.md +33 -0
- data/tracks/csharp/exercises/sgf-parsing/README.md +78 -0
- data/tracks/csharp/exercises/sieve/README.md +40 -0
- data/tracks/csharp/exercises/simple-cipher/README.md +96 -0
- data/tracks/csharp/exercises/simple-linked-list/README.md +38 -0
- data/tracks/csharp/exercises/space-age/README.md +30 -0
- data/tracks/csharp/exercises/strain/README.md +46 -0
- data/tracks/csharp/exercises/sublist/README.md +32 -0
- data/tracks/csharp/exercises/sum-of-multiples/README.md +28 -0
- data/tracks/csharp/exercises/tournament/README.md +74 -0
- data/tracks/csharp/exercises/transpose/README.md +71 -0
- data/tracks/csharp/exercises/tree-building/README.md +36 -0
- data/tracks/csharp/exercises/triangle/README.md +32 -0
- data/tracks/csharp/exercises/twelve-days/README.md +45 -0
- data/tracks/csharp/exercises/two-bucket/README.md +42 -0
- data/tracks/csharp/exercises/variable-length-quantity/README.md +50 -0
- data/tracks/csharp/exercises/word-count/README.md +25 -0
- data/tracks/csharp/exercises/word-search/README.md +43 -0
- data/tracks/csharp/exercises/wordy/README.md +73 -0
- data/tracks/csharp/exercises/zebra-puzzle/README.md +43 -0
- data/tracks/csharp/exercises/zipper/README.md +41 -0
- data/tracks/dart/config/exercise_readme.go.tmpl +16 -0
- data/tracks/dart/exercises/bob/README.md +18 -0
- data/tracks/dart/exercises/difference-of-squares/README.md +19 -0
- data/tracks/dart/exercises/gigasecond/README.md +11 -0
- data/tracks/dart/exercises/hamming/README.md +42 -0
- data/tracks/dart/exercises/hello-world/README.md +21 -0
- data/tracks/dart/exercises/leap/README.md +33 -0
- data/tracks/dart/exercises/rna-transcription/README.md +25 -0
- data/tracks/delphi/config.json +25 -32
- data/tracks/elixir/config.json +255 -3
- data/tracks/elixir/config/exercise_readme.go.tmpl +16 -0
- data/tracks/elixir/exercises/accumulate/README.md +72 -0
- data/tracks/elixir/exercises/acronym/README.md +52 -0
- data/tracks/elixir/exercises/all-your-base/README.md +72 -0
- data/tracks/elixir/exercises/allergies/README.md +74 -0
- data/tracks/elixir/exercises/anagram/README.md +50 -0
- data/tracks/elixir/exercises/atbash-cipher/README.md +71 -0
- data/tracks/elixir/exercises/bank-account/README.md +67 -0
- data/tracks/elixir/exercises/beer-song/README.md +364 -0
- data/tracks/elixir/exercises/binary-search/README.md +78 -0
- data/tracks/elixir/exercises/binary/README.md +72 -0
- data/tracks/elixir/exercises/bob/README.md +55 -0
- data/tracks/elixir/exercises/bowling/README.md +90 -0
- data/tracks/elixir/exercises/bowling/bowling_test.exs +91 -18
- data/tracks/elixir/exercises/bowling/example.exs +4 -4
- data/tracks/elixir/exercises/bracket-push/README.md +47 -0
- data/tracks/elixir/exercises/change/README.md +60 -0
- data/tracks/elixir/exercises/clock/README.md +50 -0
- data/tracks/elixir/exercises/collatz-conjecture/README.md +70 -0
- data/tracks/elixir/exercises/connect/README.md +71 -0
- data/tracks/elixir/exercises/crypto-square/README.md +111 -0
- data/tracks/elixir/exercises/custom-set/README.md +48 -0
- data/tracks/elixir/exercises/diamond/README.md +96 -0
- data/tracks/elixir/exercises/difference-of-squares/README.md +56 -0
- data/tracks/elixir/exercises/diffie-hellman/README.md +93 -0
- data/tracks/elixir/exercises/dominoes/README.md +55 -0
- data/tracks/elixir/exercises/dot-dsl/README.md +65 -0
- data/tracks/elixir/exercises/etl/README.md +88 -0
- data/tracks/elixir/exercises/flatten-array/README.md +55 -0
- data/tracks/elixir/exercises/forth/README.md +66 -0
- data/tracks/elixir/exercises/gigasecond/README.md +48 -0
- data/tracks/elixir/exercises/grade-school/README.md +79 -0
- data/tracks/elixir/exercises/grains/README.md +71 -0
- data/tracks/elixir/exercises/grep/README.md +108 -0
- data/tracks/elixir/exercises/hamming/README.md +79 -0
- data/tracks/elixir/exercises/hello-world/README.md +58 -0
- data/tracks/elixir/exercises/hexadecimal/README.md +51 -0
- data/tracks/elixir/exercises/isogram/README.md +56 -0
- data/tracks/elixir/exercises/kindergarten-garden/README.md +103 -0
- data/tracks/elixir/exercises/largest-series-product/README.md +57 -0
- data/tracks/elixir/exercises/leap/README.md +70 -0
- data/tracks/elixir/exercises/list-ops/README.md +47 -0
- data/tracks/elixir/exercises/luhn/README.md +108 -0
- data/tracks/elixir/exercises/markdown/README.md +55 -0
- data/tracks/elixir/exercises/matrix/README.md +82 -0
- data/tracks/elixir/exercises/meetup/README.md +67 -0
- data/tracks/elixir/exercises/minesweeper/README.md +67 -0
- data/tracks/elixir/exercises/nth-prime/README.md +52 -0
- data/tracks/elixir/exercises/nucleotide-count/README.md +70 -0
- data/tracks/elixir/exercises/ocr-numbers/README.md +122 -0
- data/tracks/elixir/exercises/palindrome-products/README.md +77 -0
- data/tracks/elixir/exercises/pangram/README.md +52 -0
- data/tracks/elixir/exercises/parallel-letter-frequency/README.md +48 -0
- data/tracks/elixir/exercises/pascals-triangle/README.md +58 -0
- data/tracks/elixir/exercises/perfect-numbers/README.md +61 -0
- data/tracks/elixir/exercises/phone-number/README.md +71 -0
- data/tracks/elixir/exercises/pig-latin/README.md +61 -0
- data/tracks/elixir/exercises/poker/README.md +49 -0
- data/tracks/elixir/exercises/prime-factors/README.md +73 -0
- data/tracks/elixir/exercises/protein-translation/README.md +86 -0
- data/tracks/elixir/exercises/pythagorean-triplet/README.md +61 -0
- data/tracks/elixir/exercises/queen-attack/README.md +70 -0
- data/tracks/elixir/exercises/rail-fence-cipher/README.md +97 -0
- data/tracks/elixir/exercises/raindrops/README.md +61 -0
- data/tracks/elixir/exercises/rna-transcription/README.md +62 -0
- data/tracks/elixir/exercises/robot-simulator/README.md +71 -0
- data/tracks/elixir/exercises/roman-numerals/README.md +86 -0
- data/tracks/elixir/exercises/rotational-cipher/README.md +73 -0
- data/tracks/elixir/exercises/run-length-encoding/README.md +67 -0
- data/tracks/elixir/exercises/saddle-points/README.md +70 -0
- data/tracks/elixir/exercises/say/README.md +106 -0
- data/tracks/elixir/exercises/scale-generator/README.md +97 -0
- data/tracks/elixir/exercises/scrabble-score/README.md +81 -0
- data/tracks/elixir/exercises/secret-handshake/README.md +94 -0
- data/tracks/elixir/exercises/series/README.md +64 -0
- data/tracks/elixir/exercises/sieve/README.md +71 -0
- data/tracks/elixir/exercises/simple-cipher/README.md +127 -0
- data/tracks/elixir/exercises/simple-linked-list/README.md +65 -0
- data/tracks/elixir/exercises/space-age/README.md +61 -0
- data/tracks/elixir/exercises/strain/README.md +80 -0
- data/tracks/elixir/exercises/sublist/README.md +58 -0
- data/tracks/elixir/exercises/sum-of-multiples/README.md +55 -0
- data/tracks/elixir/exercises/tournament/README.md +110 -0
- data/tracks/elixir/exercises/triangle/README.md +63 -0
- data/tracks/elixir/exercises/twelve-days/README.md +72 -0
- data/tracks/elixir/exercises/word-count/README.md +56 -0
- data/tracks/elixir/exercises/wordy/README.md +100 -0
- data/tracks/elixir/exercises/zipper/README.md +68 -0
- data/tracks/fsharp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/fsharp/exercises/accumulate/README.md +40 -0
- data/tracks/fsharp/exercises/acronym/README.md +15 -0
- data/tracks/fsharp/exercises/all-your-base/README.md +35 -0
- data/tracks/fsharp/exercises/allergies/README.md +37 -0
- data/tracks/fsharp/exercises/alphametics/README.md +41 -0
- data/tracks/fsharp/exercises/anagram/README.md +13 -0
- data/tracks/fsharp/exercises/atbash-cipher/README.md +34 -0
- data/tracks/fsharp/exercises/bank-account/README.md +30 -0
- data/tracks/fsharp/exercises/beer-song/README.md +331 -0
- data/tracks/fsharp/exercises/binary-search-tree/README.md +60 -0
- data/tracks/fsharp/exercises/binary-search/README.md +41 -0
- data/tracks/fsharp/exercises/bob/README.md +18 -0
- data/tracks/fsharp/exercises/book-store/README.md +74 -0
- data/tracks/fsharp/exercises/bowling/README.md +53 -0
- data/tracks/fsharp/exercises/bracket-push/README.md +10 -0
- data/tracks/fsharp/exercises/change/README.md +23 -0
- data/tracks/fsharp/exercises/circular-buffer/README.md +50 -0
- data/tracks/fsharp/exercises/clock/README.md +13 -0
- data/tracks/fsharp/exercises/connect/README.md +34 -0
- data/tracks/fsharp/exercises/crypto-square/README.md +74 -0
- data/tracks/fsharp/exercises/custom-set/README.md +11 -0
- data/tracks/fsharp/exercises/diamond/README.md +62 -0
- data/tracks/fsharp/exercises/difference-of-squares/README.md +25 -0
- data/tracks/fsharp/exercises/diffie-hellman/README.md +49 -0
- data/tracks/fsharp/exercises/dominoes/README.md +18 -0
- data/tracks/fsharp/exercises/dot-dsl/README.md +28 -0
- data/tracks/fsharp/exercises/error-handling/README.md +13 -0
- data/tracks/fsharp/exercises/etl/README.md +51 -0
- data/tracks/fsharp/exercises/food-chain/README.md +74 -0
- data/tracks/fsharp/exercises/forth/README.md +29 -0
- data/tracks/fsharp/exercises/gigasecond/README.md +15 -0
- data/tracks/fsharp/exercises/go-counting/README.md +37 -0
- data/tracks/fsharp/exercises/grade-school/README.md +47 -0
- data/tracks/fsharp/exercises/grains/README.md +39 -0
- data/tracks/fsharp/exercises/grep/README.md +71 -0
- data/tracks/fsharp/exercises/hamming/README.md +42 -0
- data/tracks/fsharp/exercises/hangman/README.md +21 -0
- data/tracks/fsharp/exercises/hello-world/README.md +21 -0
- data/tracks/fsharp/exercises/house/README.md +117 -0
- data/tracks/fsharp/exercises/isogram/README.md +19 -0
- data/tracks/fsharp/exercises/kindergarten-garden/README.md +66 -0
- data/tracks/fsharp/exercises/largest-series-product/README.md +20 -0
- data/tracks/fsharp/exercises/leap/README.md +33 -0
- data/tracks/fsharp/exercises/ledger/README.md +18 -0
- data/tracks/fsharp/exercises/lens-person/README.md +15 -0
- data/tracks/fsharp/exercises/linked-list/README.md +50 -0
- data/tracks/fsharp/exercises/list-ops/README.md +10 -0
- data/tracks/fsharp/exercises/luhn/README.md +71 -0
- data/tracks/fsharp/exercises/markdown/README.md +18 -0
- data/tracks/fsharp/exercises/matrix/README.md +45 -0
- data/tracks/fsharp/exercises/meetup/README.md +30 -0
- data/tracks/fsharp/exercises/minesweeper/README.md +30 -0
- data/tracks/fsharp/exercises/nth-prime/README.md +21 -0
- data/tracks/fsharp/exercises/nucleotide-count/README.md +33 -0
- data/tracks/fsharp/exercises/ocr-numbers/README.md +85 -0
- data/tracks/fsharp/exercises/palindrome-products/README.md +44 -0
- data/tracks/fsharp/exercises/pangram/README.md +15 -0
- data/tracks/fsharp/exercises/parallel-letter-frequency/README.md +15 -0
- data/tracks/fsharp/exercises/pascals-triangle/README.md +21 -0
- data/tracks/fsharp/exercises/perfect-numbers/README.md +24 -0
- data/tracks/fsharp/exercises/phone-number/README.md +34 -0
- data/tracks/fsharp/exercises/pig-latin/README.md +24 -0
- data/tracks/fsharp/exercises/poker/README.md +15 -0
- data/tracks/fsharp/exercises/pov/README.md +46 -0
- data/tracks/fsharp/exercises/prime-factors/README.md +36 -0
- data/tracks/fsharp/exercises/protein-translation/README.md +49 -0
- data/tracks/fsharp/exercises/proverb/README.md +22 -0
- data/tracks/fsharp/exercises/pythagorean-triplet/README.md +24 -0
- data/tracks/fsharp/exercises/queen-attack/README.md +33 -0
- data/tracks/fsharp/exercises/rail-fence-cipher/README.md +60 -0
- data/tracks/fsharp/exercises/raindrops/README.md +27 -0
- data/tracks/fsharp/exercises/react/README.md +19 -0
- data/tracks/fsharp/exercises/rectangles/README.md +67 -0
- data/tracks/fsharp/exercises/rna-transcription/README.md +29 -0
- data/tracks/fsharp/exercises/robot-name/README.md +22 -0
- data/tracks/fsharp/exercises/robot-simulator/README.md +34 -0
- data/tracks/fsharp/exercises/roman-numerals/README.md +49 -0
- data/tracks/fsharp/exercises/run-length-encoding/README.md +30 -0
- data/tracks/fsharp/exercises/saddle-points/README.md +33 -0
- data/tracks/fsharp/exercises/say/README.md +69 -0
- data/tracks/fsharp/exercises/scale-generator/README.md +60 -0
- data/tracks/fsharp/exercises/scrabble-score/README.md +44 -0
- data/tracks/fsharp/exercises/secret-handshake/README.md +35 -0
- data/tracks/fsharp/exercises/series/README.md +27 -0
- data/tracks/fsharp/exercises/sgf-parsing/README.md +68 -0
- data/tracks/fsharp/exercises/sieve/README.md +34 -0
- data/tracks/fsharp/exercises/simple-cipher/README.md +90 -0
- data/tracks/fsharp/exercises/simple-linked-list/README.md +28 -0
- data/tracks/fsharp/exercises/space-age/README.md +28 -0
- data/tracks/fsharp/exercises/strain/README.md +40 -0
- data/tracks/fsharp/exercises/sublist/README.md +21 -0
- data/tracks/fsharp/exercises/sum-of-multiples/README.md +18 -0
- data/tracks/fsharp/exercises/tournament/README.md +68 -0
- data/tracks/fsharp/exercises/transpose/README.md +65 -0
- data/tracks/fsharp/exercises/tree-building/README.md +30 -0
- data/tracks/fsharp/exercises/triangle/README.md +26 -0
- data/tracks/fsharp/exercises/twelve-days/README.md +39 -0
- data/tracks/fsharp/exercises/two-bucket/README.md +36 -0
- data/tracks/fsharp/exercises/variable-length-quantity/README.md +39 -0
- data/tracks/fsharp/exercises/word-count/README.md +19 -0
- data/tracks/fsharp/exercises/word-search/README.md +30 -0
- data/tracks/fsharp/exercises/wordy/README.md +68 -0
- data/tracks/fsharp/exercises/zebra-puzzle/README.md +32 -0
- data/tracks/fsharp/exercises/zipper/README.md +31 -0
- data/tracks/haskell/README.md +2 -2
- data/tracks/javascript/config.json +232 -4
- data/tracks/kotlin/config.json +8 -1
- data/tracks/kotlin/exercises/rotational-cipher/build.gradle +28 -0
- data/tracks/kotlin/exercises/rotational-cipher/src/example/kotlin/RotationalCipher.kt +18 -0
- data/tracks/kotlin/exercises/rotational-cipher/src/main/kotlin/.keep +0 -0
- data/tracks/kotlin/exercises/rotational-cipher/src/test/kotlin/RotationalCipherTest.kt +81 -0
- data/tracks/kotlin/exercises/settings.gradle +1 -0
- data/tracks/powershell/config/exercise_readme.go.tmpl +16 -0
- data/tracks/powershell/exercises/hamming/README.md +42 -0
- data/tracks/powershell/exercises/hello-world/README.md +21 -0
- data/tracks/purescript/README.md +4 -4
- data/tracks/scala/config.json +266 -6
- data/tracks/scala/config/exercise_readme.go.tmpl +16 -0
- data/tracks/scala/exercises/accumulate/README.md +46 -0
- data/tracks/scala/exercises/acronym/README.md +26 -0
- data/tracks/scala/exercises/all-your-base/README.md +46 -0
- data/tracks/scala/exercises/allergies/README.md +48 -0
- data/tracks/scala/exercises/alphametics/README.md +46 -0
- data/tracks/scala/exercises/anagram/README.md +24 -0
- data/tracks/scala/exercises/atbash-cipher/README.md +45 -0
- data/tracks/scala/exercises/bank-account/README.md +54 -0
- data/tracks/scala/exercises/beer-song/README.md +338 -0
- data/tracks/scala/exercises/binary-search-tree/README.md +71 -0
- data/tracks/scala/exercises/binary-search/README.md +52 -0
- data/tracks/scala/exercises/binary/README.md +46 -0
- data/tracks/scala/exercises/bob/README.md +29 -0
- data/tracks/scala/exercises/book-store/README.md +85 -0
- data/tracks/scala/exercises/bowling/README.md +64 -0
- data/tracks/scala/exercises/bracket-push/README.md +21 -0
- data/tracks/scala/exercises/change/README.md +34 -0
- data/tracks/scala/exercises/clock/README.md +24 -0
- data/tracks/scala/exercises/connect/README.md +53 -0
- data/tracks/scala/exercises/crypto-square/README.md +85 -0
- data/tracks/scala/exercises/custom-set/README.md +22 -0
- data/tracks/scala/exercises/difference-of-squares/README.md +30 -0
- data/tracks/scala/exercises/dominoes/README.md +29 -0
- data/tracks/scala/exercises/etl/README.md +62 -0
- data/tracks/scala/exercises/food-chain/README.md +81 -0
- data/tracks/scala/exercises/forth/README.md +40 -0
- data/tracks/scala/exercises/gigasecond/README.md +26 -0
- data/tracks/scala/exercises/grade-school/README.md +53 -0
- data/tracks/scala/exercises/grains/README.md +45 -0
- data/tracks/scala/exercises/hamming/README.md +112 -0
- data/tracks/scala/exercises/hello-world/README.md +38 -0
- data/tracks/scala/exercises/hexadecimal/README.md +25 -0
- data/tracks/scala/exercises/house/README.md +124 -0
- data/tracks/scala/exercises/isogram/README.md +30 -0
- data/tracks/scala/exercises/kindergarten-garden/README.md +77 -0
- data/tracks/scala/exercises/largest-series-product/README.md +31 -0
- data/tracks/scala/exercises/leap/README.md +50 -0
- data/tracks/scala/exercises/lens-person/README.md +11 -7
- data/tracks/scala/exercises/linked-list/README.md +45 -0
- data/tracks/scala/exercises/luhn/README.md +82 -0
- data/tracks/scala/exercises/matrix/README.md +56 -0
- data/tracks/scala/exercises/meetup/README.md +41 -0
- data/tracks/scala/exercises/minesweeper/README.md +41 -0
- data/tracks/scala/exercises/nth-prime/README.md +26 -0
- data/tracks/scala/exercises/nucleotide-count/README.md +107 -0
- data/tracks/scala/exercises/ocr-numbers/README.md +96 -0
- data/tracks/scala/exercises/octal/README.md +60 -0
- data/tracks/scala/exercises/palindrome-products/README.md +51 -0
- data/tracks/scala/exercises/pangram/README.md +26 -0
- data/tracks/scala/exercises/parallel-letter-frequency/README.md +50 -0
- data/tracks/scala/exercises/pascals-triangle/README.md +32 -0
- data/tracks/scala/exercises/perfect-numbers/README.md +35 -0
- data/tracks/scala/exercises/phone-number/README.md +56 -0
- data/tracks/scala/exercises/pig-latin/README.md +35 -0
- data/tracks/scala/exercises/prime-factors/README.md +47 -0
- data/tracks/scala/exercises/protein-translation/README.md +60 -0
- data/tracks/scala/exercises/pythagorean-triplet/README.md +35 -0
- data/tracks/scala/exercises/queen-attack/README.md +44 -0
- data/tracks/scala/exercises/rail-fence-cipher/README.md +71 -0
- data/tracks/scala/exercises/raindrops/README.md +35 -0
- data/tracks/scala/exercises/rna-transcription/README.md +36 -0
- data/tracks/scala/exercises/robot-name/README.md +40 -0
- data/tracks/scala/exercises/robot-simulator/README.md +45 -0
- data/tracks/scala/exercises/roman-numerals/README.md +72 -0
- data/tracks/scala/exercises/run-length-encoding/README.md +41 -0
- data/tracks/scala/exercises/saddle-points/README.md +44 -0
- data/tracks/scala/exercises/say/README.md +80 -0
- data/tracks/scala/exercises/scrabble-score/README.md +55 -0
- data/tracks/scala/exercises/secret-handshake/README.md +46 -0
- data/tracks/scala/exercises/series/README.md +38 -0
- data/tracks/scala/exercises/sgf-parsing/README.md +79 -0
- data/tracks/scala/exercises/sieve/README.md +45 -0
- data/tracks/scala/exercises/simple-cipher/README.md +101 -0
- data/tracks/scala/exercises/simple-linked-list/README.md +39 -0
- data/tracks/scala/exercises/space-age/README.md +35 -0
- data/tracks/scala/exercises/spiral-matrix/README.md +41 -0
- data/tracks/scala/exercises/strain/README.md +51 -0
- data/tracks/scala/exercises/sublist/README.md +32 -0
- data/tracks/scala/exercises/sum-of-multiples/README.md +29 -0
- data/tracks/scala/exercises/triangle/README.md +37 -0
- data/tracks/scala/exercises/trinary/README.md +39 -0
- data/tracks/scala/exercises/variable-length-quantity/README.md +54 -0
- data/tracks/scala/exercises/word-count/README.md +30 -0
- data/tracks/scala/exercises/wordy/README.md +74 -0
- data/tracks/scala/exercises/zebra-puzzle/README.md +43 -0
- data/tracks/scala/exercises/zipper/README.md +42 -0
- metadata +401 -1
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
# Beer Song
|
|
2
|
+
|
|
3
|
+
Produce the lyrics to that beloved classic, that field-trip favorite: 99 Bottles of Beer on the Wall.
|
|
4
|
+
|
|
5
|
+
Note that not all verses are identical.
|
|
6
|
+
|
|
7
|
+
```plain
|
|
8
|
+
99 bottles of beer on the wall, 99 bottles of beer.
|
|
9
|
+
Take one down and pass it around, 98 bottles of beer on the wall.
|
|
10
|
+
|
|
11
|
+
98 bottles of beer on the wall, 98 bottles of beer.
|
|
12
|
+
Take one down and pass it around, 97 bottles of beer on the wall.
|
|
13
|
+
|
|
14
|
+
97 bottles of beer on the wall, 97 bottles of beer.
|
|
15
|
+
Take one down and pass it around, 96 bottles of beer on the wall.
|
|
16
|
+
|
|
17
|
+
96 bottles of beer on the wall, 96 bottles of beer.
|
|
18
|
+
Take one down and pass it around, 95 bottles of beer on the wall.
|
|
19
|
+
|
|
20
|
+
95 bottles of beer on the wall, 95 bottles of beer.
|
|
21
|
+
Take one down and pass it around, 94 bottles of beer on the wall.
|
|
22
|
+
|
|
23
|
+
94 bottles of beer on the wall, 94 bottles of beer.
|
|
24
|
+
Take one down and pass it around, 93 bottles of beer on the wall.
|
|
25
|
+
|
|
26
|
+
93 bottles of beer on the wall, 93 bottles of beer.
|
|
27
|
+
Take one down and pass it around, 92 bottles of beer on the wall.
|
|
28
|
+
|
|
29
|
+
92 bottles of beer on the wall, 92 bottles of beer.
|
|
30
|
+
Take one down and pass it around, 91 bottles of beer on the wall.
|
|
31
|
+
|
|
32
|
+
91 bottles of beer on the wall, 91 bottles of beer.
|
|
33
|
+
Take one down and pass it around, 90 bottles of beer on the wall.
|
|
34
|
+
|
|
35
|
+
90 bottles of beer on the wall, 90 bottles of beer.
|
|
36
|
+
Take one down and pass it around, 89 bottles of beer on the wall.
|
|
37
|
+
|
|
38
|
+
89 bottles of beer on the wall, 89 bottles of beer.
|
|
39
|
+
Take one down and pass it around, 88 bottles of beer on the wall.
|
|
40
|
+
|
|
41
|
+
88 bottles of beer on the wall, 88 bottles of beer.
|
|
42
|
+
Take one down and pass it around, 87 bottles of beer on the wall.
|
|
43
|
+
|
|
44
|
+
87 bottles of beer on the wall, 87 bottles of beer.
|
|
45
|
+
Take one down and pass it around, 86 bottles of beer on the wall.
|
|
46
|
+
|
|
47
|
+
86 bottles of beer on the wall, 86 bottles of beer.
|
|
48
|
+
Take one down and pass it around, 85 bottles of beer on the wall.
|
|
49
|
+
|
|
50
|
+
85 bottles of beer on the wall, 85 bottles of beer.
|
|
51
|
+
Take one down and pass it around, 84 bottles of beer on the wall.
|
|
52
|
+
|
|
53
|
+
84 bottles of beer on the wall, 84 bottles of beer.
|
|
54
|
+
Take one down and pass it around, 83 bottles of beer on the wall.
|
|
55
|
+
|
|
56
|
+
83 bottles of beer on the wall, 83 bottles of beer.
|
|
57
|
+
Take one down and pass it around, 82 bottles of beer on the wall.
|
|
58
|
+
|
|
59
|
+
82 bottles of beer on the wall, 82 bottles of beer.
|
|
60
|
+
Take one down and pass it around, 81 bottles of beer on the wall.
|
|
61
|
+
|
|
62
|
+
81 bottles of beer on the wall, 81 bottles of beer.
|
|
63
|
+
Take one down and pass it around, 80 bottles of beer on the wall.
|
|
64
|
+
|
|
65
|
+
80 bottles of beer on the wall, 80 bottles of beer.
|
|
66
|
+
Take one down and pass it around, 79 bottles of beer on the wall.
|
|
67
|
+
|
|
68
|
+
79 bottles of beer on the wall, 79 bottles of beer.
|
|
69
|
+
Take one down and pass it around, 78 bottles of beer on the wall.
|
|
70
|
+
|
|
71
|
+
78 bottles of beer on the wall, 78 bottles of beer.
|
|
72
|
+
Take one down and pass it around, 77 bottles of beer on the wall.
|
|
73
|
+
|
|
74
|
+
77 bottles of beer on the wall, 77 bottles of beer.
|
|
75
|
+
Take one down and pass it around, 76 bottles of beer on the wall.
|
|
76
|
+
|
|
77
|
+
76 bottles of beer on the wall, 76 bottles of beer.
|
|
78
|
+
Take one down and pass it around, 75 bottles of beer on the wall.
|
|
79
|
+
|
|
80
|
+
75 bottles of beer on the wall, 75 bottles of beer.
|
|
81
|
+
Take one down and pass it around, 74 bottles of beer on the wall.
|
|
82
|
+
|
|
83
|
+
74 bottles of beer on the wall, 74 bottles of beer.
|
|
84
|
+
Take one down and pass it around, 73 bottles of beer on the wall.
|
|
85
|
+
|
|
86
|
+
73 bottles of beer on the wall, 73 bottles of beer.
|
|
87
|
+
Take one down and pass it around, 72 bottles of beer on the wall.
|
|
88
|
+
|
|
89
|
+
72 bottles of beer on the wall, 72 bottles of beer.
|
|
90
|
+
Take one down and pass it around, 71 bottles of beer on the wall.
|
|
91
|
+
|
|
92
|
+
71 bottles of beer on the wall, 71 bottles of beer.
|
|
93
|
+
Take one down and pass it around, 70 bottles of beer on the wall.
|
|
94
|
+
|
|
95
|
+
70 bottles of beer on the wall, 70 bottles of beer.
|
|
96
|
+
Take one down and pass it around, 69 bottles of beer on the wall.
|
|
97
|
+
|
|
98
|
+
69 bottles of beer on the wall, 69 bottles of beer.
|
|
99
|
+
Take one down and pass it around, 68 bottles of beer on the wall.
|
|
100
|
+
|
|
101
|
+
68 bottles of beer on the wall, 68 bottles of beer.
|
|
102
|
+
Take one down and pass it around, 67 bottles of beer on the wall.
|
|
103
|
+
|
|
104
|
+
67 bottles of beer on the wall, 67 bottles of beer.
|
|
105
|
+
Take one down and pass it around, 66 bottles of beer on the wall.
|
|
106
|
+
|
|
107
|
+
66 bottles of beer on the wall, 66 bottles of beer.
|
|
108
|
+
Take one down and pass it around, 65 bottles of beer on the wall.
|
|
109
|
+
|
|
110
|
+
65 bottles of beer on the wall, 65 bottles of beer.
|
|
111
|
+
Take one down and pass it around, 64 bottles of beer on the wall.
|
|
112
|
+
|
|
113
|
+
64 bottles of beer on the wall, 64 bottles of beer.
|
|
114
|
+
Take one down and pass it around, 63 bottles of beer on the wall.
|
|
115
|
+
|
|
116
|
+
63 bottles of beer on the wall, 63 bottles of beer.
|
|
117
|
+
Take one down and pass it around, 62 bottles of beer on the wall.
|
|
118
|
+
|
|
119
|
+
62 bottles of beer on the wall, 62 bottles of beer.
|
|
120
|
+
Take one down and pass it around, 61 bottles of beer on the wall.
|
|
121
|
+
|
|
122
|
+
61 bottles of beer on the wall, 61 bottles of beer.
|
|
123
|
+
Take one down and pass it around, 60 bottles of beer on the wall.
|
|
124
|
+
|
|
125
|
+
60 bottles of beer on the wall, 60 bottles of beer.
|
|
126
|
+
Take one down and pass it around, 59 bottles of beer on the wall.
|
|
127
|
+
|
|
128
|
+
59 bottles of beer on the wall, 59 bottles of beer.
|
|
129
|
+
Take one down and pass it around, 58 bottles of beer on the wall.
|
|
130
|
+
|
|
131
|
+
58 bottles of beer on the wall, 58 bottles of beer.
|
|
132
|
+
Take one down and pass it around, 57 bottles of beer on the wall.
|
|
133
|
+
|
|
134
|
+
57 bottles of beer on the wall, 57 bottles of beer.
|
|
135
|
+
Take one down and pass it around, 56 bottles of beer on the wall.
|
|
136
|
+
|
|
137
|
+
56 bottles of beer on the wall, 56 bottles of beer.
|
|
138
|
+
Take one down and pass it around, 55 bottles of beer on the wall.
|
|
139
|
+
|
|
140
|
+
55 bottles of beer on the wall, 55 bottles of beer.
|
|
141
|
+
Take one down and pass it around, 54 bottles of beer on the wall.
|
|
142
|
+
|
|
143
|
+
54 bottles of beer on the wall, 54 bottles of beer.
|
|
144
|
+
Take one down and pass it around, 53 bottles of beer on the wall.
|
|
145
|
+
|
|
146
|
+
53 bottles of beer on the wall, 53 bottles of beer.
|
|
147
|
+
Take one down and pass it around, 52 bottles of beer on the wall.
|
|
148
|
+
|
|
149
|
+
52 bottles of beer on the wall, 52 bottles of beer.
|
|
150
|
+
Take one down and pass it around, 51 bottles of beer on the wall.
|
|
151
|
+
|
|
152
|
+
51 bottles of beer on the wall, 51 bottles of beer.
|
|
153
|
+
Take one down and pass it around, 50 bottles of beer on the wall.
|
|
154
|
+
|
|
155
|
+
50 bottles of beer on the wall, 50 bottles of beer.
|
|
156
|
+
Take one down and pass it around, 49 bottles of beer on the wall.
|
|
157
|
+
|
|
158
|
+
49 bottles of beer on the wall, 49 bottles of beer.
|
|
159
|
+
Take one down and pass it around, 48 bottles of beer on the wall.
|
|
160
|
+
|
|
161
|
+
48 bottles of beer on the wall, 48 bottles of beer.
|
|
162
|
+
Take one down and pass it around, 47 bottles of beer on the wall.
|
|
163
|
+
|
|
164
|
+
47 bottles of beer on the wall, 47 bottles of beer.
|
|
165
|
+
Take one down and pass it around, 46 bottles of beer on the wall.
|
|
166
|
+
|
|
167
|
+
46 bottles of beer on the wall, 46 bottles of beer.
|
|
168
|
+
Take one down and pass it around, 45 bottles of beer on the wall.
|
|
169
|
+
|
|
170
|
+
45 bottles of beer on the wall, 45 bottles of beer.
|
|
171
|
+
Take one down and pass it around, 44 bottles of beer on the wall.
|
|
172
|
+
|
|
173
|
+
44 bottles of beer on the wall, 44 bottles of beer.
|
|
174
|
+
Take one down and pass it around, 43 bottles of beer on the wall.
|
|
175
|
+
|
|
176
|
+
43 bottles of beer on the wall, 43 bottles of beer.
|
|
177
|
+
Take one down and pass it around, 42 bottles of beer on the wall.
|
|
178
|
+
|
|
179
|
+
42 bottles of beer on the wall, 42 bottles of beer.
|
|
180
|
+
Take one down and pass it around, 41 bottles of beer on the wall.
|
|
181
|
+
|
|
182
|
+
41 bottles of beer on the wall, 41 bottles of beer.
|
|
183
|
+
Take one down and pass it around, 40 bottles of beer on the wall.
|
|
184
|
+
|
|
185
|
+
40 bottles of beer on the wall, 40 bottles of beer.
|
|
186
|
+
Take one down and pass it around, 39 bottles of beer on the wall.
|
|
187
|
+
|
|
188
|
+
39 bottles of beer on the wall, 39 bottles of beer.
|
|
189
|
+
Take one down and pass it around, 38 bottles of beer on the wall.
|
|
190
|
+
|
|
191
|
+
38 bottles of beer on the wall, 38 bottles of beer.
|
|
192
|
+
Take one down and pass it around, 37 bottles of beer on the wall.
|
|
193
|
+
|
|
194
|
+
37 bottles of beer on the wall, 37 bottles of beer.
|
|
195
|
+
Take one down and pass it around, 36 bottles of beer on the wall.
|
|
196
|
+
|
|
197
|
+
36 bottles of beer on the wall, 36 bottles of beer.
|
|
198
|
+
Take one down and pass it around, 35 bottles of beer on the wall.
|
|
199
|
+
|
|
200
|
+
35 bottles of beer on the wall, 35 bottles of beer.
|
|
201
|
+
Take one down and pass it around, 34 bottles of beer on the wall.
|
|
202
|
+
|
|
203
|
+
34 bottles of beer on the wall, 34 bottles of beer.
|
|
204
|
+
Take one down and pass it around, 33 bottles of beer on the wall.
|
|
205
|
+
|
|
206
|
+
33 bottles of beer on the wall, 33 bottles of beer.
|
|
207
|
+
Take one down and pass it around, 32 bottles of beer on the wall.
|
|
208
|
+
|
|
209
|
+
32 bottles of beer on the wall, 32 bottles of beer.
|
|
210
|
+
Take one down and pass it around, 31 bottles of beer on the wall.
|
|
211
|
+
|
|
212
|
+
31 bottles of beer on the wall, 31 bottles of beer.
|
|
213
|
+
Take one down and pass it around, 30 bottles of beer on the wall.
|
|
214
|
+
|
|
215
|
+
30 bottles of beer on the wall, 30 bottles of beer.
|
|
216
|
+
Take one down and pass it around, 29 bottles of beer on the wall.
|
|
217
|
+
|
|
218
|
+
29 bottles of beer on the wall, 29 bottles of beer.
|
|
219
|
+
Take one down and pass it around, 28 bottles of beer on the wall.
|
|
220
|
+
|
|
221
|
+
28 bottles of beer on the wall, 28 bottles of beer.
|
|
222
|
+
Take one down and pass it around, 27 bottles of beer on the wall.
|
|
223
|
+
|
|
224
|
+
27 bottles of beer on the wall, 27 bottles of beer.
|
|
225
|
+
Take one down and pass it around, 26 bottles of beer on the wall.
|
|
226
|
+
|
|
227
|
+
26 bottles of beer on the wall, 26 bottles of beer.
|
|
228
|
+
Take one down and pass it around, 25 bottles of beer on the wall.
|
|
229
|
+
|
|
230
|
+
25 bottles of beer on the wall, 25 bottles of beer.
|
|
231
|
+
Take one down and pass it around, 24 bottles of beer on the wall.
|
|
232
|
+
|
|
233
|
+
24 bottles of beer on the wall, 24 bottles of beer.
|
|
234
|
+
Take one down and pass it around, 23 bottles of beer on the wall.
|
|
235
|
+
|
|
236
|
+
23 bottles of beer on the wall, 23 bottles of beer.
|
|
237
|
+
Take one down and pass it around, 22 bottles of beer on the wall.
|
|
238
|
+
|
|
239
|
+
22 bottles of beer on the wall, 22 bottles of beer.
|
|
240
|
+
Take one down and pass it around, 21 bottles of beer on the wall.
|
|
241
|
+
|
|
242
|
+
21 bottles of beer on the wall, 21 bottles of beer.
|
|
243
|
+
Take one down and pass it around, 20 bottles of beer on the wall.
|
|
244
|
+
|
|
245
|
+
20 bottles of beer on the wall, 20 bottles of beer.
|
|
246
|
+
Take one down and pass it around, 19 bottles of beer on the wall.
|
|
247
|
+
|
|
248
|
+
19 bottles of beer on the wall, 19 bottles of beer.
|
|
249
|
+
Take one down and pass it around, 18 bottles of beer on the wall.
|
|
250
|
+
|
|
251
|
+
18 bottles of beer on the wall, 18 bottles of beer.
|
|
252
|
+
Take one down and pass it around, 17 bottles of beer on the wall.
|
|
253
|
+
|
|
254
|
+
17 bottles of beer on the wall, 17 bottles of beer.
|
|
255
|
+
Take one down and pass it around, 16 bottles of beer on the wall.
|
|
256
|
+
|
|
257
|
+
16 bottles of beer on the wall, 16 bottles of beer.
|
|
258
|
+
Take one down and pass it around, 15 bottles of beer on the wall.
|
|
259
|
+
|
|
260
|
+
15 bottles of beer on the wall, 15 bottles of beer.
|
|
261
|
+
Take one down and pass it around, 14 bottles of beer on the wall.
|
|
262
|
+
|
|
263
|
+
14 bottles of beer on the wall, 14 bottles of beer.
|
|
264
|
+
Take one down and pass it around, 13 bottles of beer on the wall.
|
|
265
|
+
|
|
266
|
+
13 bottles of beer on the wall, 13 bottles of beer.
|
|
267
|
+
Take one down and pass it around, 12 bottles of beer on the wall.
|
|
268
|
+
|
|
269
|
+
12 bottles of beer on the wall, 12 bottles of beer.
|
|
270
|
+
Take one down and pass it around, 11 bottles of beer on the wall.
|
|
271
|
+
|
|
272
|
+
11 bottles of beer on the wall, 11 bottles of beer.
|
|
273
|
+
Take one down and pass it around, 10 bottles of beer on the wall.
|
|
274
|
+
|
|
275
|
+
10 bottles of beer on the wall, 10 bottles of beer.
|
|
276
|
+
Take one down and pass it around, 9 bottles of beer on the wall.
|
|
277
|
+
|
|
278
|
+
9 bottles of beer on the wall, 9 bottles of beer.
|
|
279
|
+
Take one down and pass it around, 8 bottles of beer on the wall.
|
|
280
|
+
|
|
281
|
+
8 bottles of beer on the wall, 8 bottles of beer.
|
|
282
|
+
Take one down and pass it around, 7 bottles of beer on the wall.
|
|
283
|
+
|
|
284
|
+
7 bottles of beer on the wall, 7 bottles of beer.
|
|
285
|
+
Take one down and pass it around, 6 bottles of beer on the wall.
|
|
286
|
+
|
|
287
|
+
6 bottles of beer on the wall, 6 bottles of beer.
|
|
288
|
+
Take one down and pass it around, 5 bottles of beer on the wall.
|
|
289
|
+
|
|
290
|
+
5 bottles of beer on the wall, 5 bottles of beer.
|
|
291
|
+
Take one down and pass it around, 4 bottles of beer on the wall.
|
|
292
|
+
|
|
293
|
+
4 bottles of beer on the wall, 4 bottles of beer.
|
|
294
|
+
Take one down and pass it around, 3 bottles of beer on the wall.
|
|
295
|
+
|
|
296
|
+
3 bottles of beer on the wall, 3 bottles of beer.
|
|
297
|
+
Take one down and pass it around, 2 bottles of beer on the wall.
|
|
298
|
+
|
|
299
|
+
2 bottles of beer on the wall, 2 bottles of beer.
|
|
300
|
+
Take one down and pass it around, 1 bottle of beer on the wall.
|
|
301
|
+
|
|
302
|
+
1 bottle of beer on the wall, 1 bottle of beer.
|
|
303
|
+
Take it down and pass it around, no more bottles of beer on the wall.
|
|
304
|
+
|
|
305
|
+
No more bottles of beer on the wall, no more bottles of beer.
|
|
306
|
+
Go to the store and buy some more, 99 bottles of beer on the wall.
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
## For bonus points
|
|
310
|
+
|
|
311
|
+
Did you get the tests passing and the code clean? If you want to, these
|
|
312
|
+
are some additional things you could try:
|
|
313
|
+
|
|
314
|
+
* Remove as much duplication as you possibly can.
|
|
315
|
+
* Optimize for readability, even if it means introducing duplication.
|
|
316
|
+
* If you've removed all the duplication, do you have a lot of
|
|
317
|
+
conditionals? Try replacing the conditionals with polymorphism, if it
|
|
318
|
+
applies in this language. How readable is it?
|
|
319
|
+
|
|
320
|
+
Then please share your thoughts in a comment on the submission. Did this
|
|
321
|
+
experiment make the code better? Worse? Did you learn anything from it?
|
|
322
|
+
|
|
323
|
+
## Running tests
|
|
324
|
+
|
|
325
|
+
Execute the tests with:
|
|
326
|
+
|
|
327
|
+
```bash
|
|
328
|
+
$ elixir bob_test.exs
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
(Replace `bob_test.exs` with the name of the test file.)
|
|
332
|
+
|
|
333
|
+
### Pending tests
|
|
334
|
+
|
|
335
|
+
In the test suites, all but the first test have been skipped.
|
|
336
|
+
|
|
337
|
+
Once you get a test passing, you can unskip the next one by
|
|
338
|
+
commenting out the relevant `@tag :pending` with a `#` symbol.
|
|
339
|
+
|
|
340
|
+
For example:
|
|
341
|
+
|
|
342
|
+
```elixir
|
|
343
|
+
# @tag :pending
|
|
344
|
+
test "shouting" do
|
|
345
|
+
assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
|
|
346
|
+
end
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
Or, you can enable all the tests by commenting out the
|
|
350
|
+
`ExUnit.configure` line in the test suite.
|
|
351
|
+
|
|
352
|
+
```elixir
|
|
353
|
+
# ExUnit.configure exclude: :pending, trace: true
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
For more detailed information about the Elixir track, please
|
|
357
|
+
see the [help page](http://exercism.io/languages/elixir).
|
|
358
|
+
|
|
359
|
+
## Source
|
|
360
|
+
|
|
361
|
+
Learn to Program by Chris Pine [http://pine.fm/LearnToProgram/?Chapter=06](http://pine.fm/LearnToProgram/?Chapter=06)
|
|
362
|
+
|
|
363
|
+
## Submitting Incomplete Solutions
|
|
364
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Binary Search
|
|
2
|
+
|
|
3
|
+
Implement a binary search algorithm.
|
|
4
|
+
|
|
5
|
+
Searching a sorted collection is a common task. A dictionary is a sorted
|
|
6
|
+
list of word definitions. Given a word, one can find its definition. A
|
|
7
|
+
telephone book is a sorted list of people's names, addresses, and
|
|
8
|
+
telephone numbers. Knowing someone's name allows one to quickly find
|
|
9
|
+
their telephone number and address.
|
|
10
|
+
|
|
11
|
+
If the list to be searched contains more than a few items (a dozen, say)
|
|
12
|
+
a binary search will require far fewer comparisons than a linear search,
|
|
13
|
+
but it imposes the requirement that the list be sorted.
|
|
14
|
+
|
|
15
|
+
In computer science, a binary search or half-interval search algorithm
|
|
16
|
+
finds the position of a specified input value (the search "key") within
|
|
17
|
+
an array sorted by key value.
|
|
18
|
+
|
|
19
|
+
In each step, the algorithm compares the search key value with the key
|
|
20
|
+
value of the middle element of the array.
|
|
21
|
+
|
|
22
|
+
If the keys match, then a matching element has been found and its index,
|
|
23
|
+
or position, is returned.
|
|
24
|
+
|
|
25
|
+
Otherwise, if the search key is less than the middle element's key, then
|
|
26
|
+
the algorithm repeats its action on the sub-array to the left of the
|
|
27
|
+
middle element or, if the search key is greater, on the sub-array to the
|
|
28
|
+
right.
|
|
29
|
+
|
|
30
|
+
If the remaining array to be searched is empty, then the key cannot be
|
|
31
|
+
found in the array and a special "not found" indication is returned.
|
|
32
|
+
|
|
33
|
+
A binary search halves the number of items to check with each iteration,
|
|
34
|
+
so locating an item (or determining its absence) takes logarithmic time.
|
|
35
|
+
A binary search is a dichotomic divide and conquer search algorithm.
|
|
36
|
+
|
|
37
|
+
## Running tests
|
|
38
|
+
|
|
39
|
+
Execute the tests with:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
$ elixir bob_test.exs
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
(Replace `bob_test.exs` with the name of the test file.)
|
|
46
|
+
|
|
47
|
+
### Pending tests
|
|
48
|
+
|
|
49
|
+
In the test suites, all but the first test have been skipped.
|
|
50
|
+
|
|
51
|
+
Once you get a test passing, you can unskip the next one by
|
|
52
|
+
commenting out the relevant `@tag :pending` with a `#` symbol.
|
|
53
|
+
|
|
54
|
+
For example:
|
|
55
|
+
|
|
56
|
+
```elixir
|
|
57
|
+
# @tag :pending
|
|
58
|
+
test "shouting" do
|
|
59
|
+
assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
|
|
60
|
+
end
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Or, you can enable all the tests by commenting out the
|
|
64
|
+
`ExUnit.configure` line in the test suite.
|
|
65
|
+
|
|
66
|
+
```elixir
|
|
67
|
+
# ExUnit.configure exclude: :pending, trace: true
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
For more detailed information about the Elixir track, please
|
|
71
|
+
see the [help page](http://exercism.io/languages/elixir).
|
|
72
|
+
|
|
73
|
+
## Source
|
|
74
|
+
|
|
75
|
+
Wikipedia [http://en.wikipedia.org/wiki/Binary_search_algorithm](http://en.wikipedia.org/wiki/Binary_search_algorithm)
|
|
76
|
+
|
|
77
|
+
## Submitting Incomplete Solutions
|
|
78
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,72 @@
|
|
|
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
|
+
|
|
31
|
+
## Running tests
|
|
32
|
+
|
|
33
|
+
Execute the tests with:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
$ elixir bob_test.exs
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
(Replace `bob_test.exs` with the name of the test file.)
|
|
40
|
+
|
|
41
|
+
### Pending tests
|
|
42
|
+
|
|
43
|
+
In the test suites, all but the first test have been skipped.
|
|
44
|
+
|
|
45
|
+
Once you get a test passing, you can unskip the next one by
|
|
46
|
+
commenting out the relevant `@tag :pending` with a `#` symbol.
|
|
47
|
+
|
|
48
|
+
For example:
|
|
49
|
+
|
|
50
|
+
```elixir
|
|
51
|
+
# @tag :pending
|
|
52
|
+
test "shouting" do
|
|
53
|
+
assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
|
|
54
|
+
end
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Or, you can enable all the tests by commenting out the
|
|
58
|
+
`ExUnit.configure` line in the test suite.
|
|
59
|
+
|
|
60
|
+
```elixir
|
|
61
|
+
# ExUnit.configure exclude: :pending, trace: true
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
For more detailed information about the Elixir track, please
|
|
65
|
+
see the [help page](http://exercism.io/languages/elixir).
|
|
66
|
+
|
|
67
|
+
## Source
|
|
68
|
+
|
|
69
|
+
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-)
|
|
70
|
+
|
|
71
|
+
## Submitting Incomplete Solutions
|
|
72
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|