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,80 @@
|
|
|
1
|
+
# Crypto Square
|
|
2
|
+
|
|
3
|
+
Implement the classic method for composing secret messages called a square code.
|
|
4
|
+
|
|
5
|
+
Given an English text, output the encoded version of that text.
|
|
6
|
+
|
|
7
|
+
First, the input is normalized: the spaces and punctuation are removed
|
|
8
|
+
from the English text and the message is downcased.
|
|
9
|
+
|
|
10
|
+
Then, the normalized characters are broken into rows. These rows can be
|
|
11
|
+
regarded as forming a rectangle when printed with intervening newlines.
|
|
12
|
+
|
|
13
|
+
For example, the sentence
|
|
14
|
+
|
|
15
|
+
> If man was meant to stay on the ground, god would have given us roots.
|
|
16
|
+
|
|
17
|
+
is normalized to:
|
|
18
|
+
|
|
19
|
+
> ifmanwasmeanttostayonthegroundgodwouldhavegivenusroots
|
|
20
|
+
|
|
21
|
+
The plaintext should be organized in to a rectangle. The size of the
|
|
22
|
+
rectangle (`r x c`) should be decided by the length of the message,
|
|
23
|
+
such that `c >= r` and `c - r <= 1`, where `c` is the number of columns
|
|
24
|
+
and `r` is the number of rows.
|
|
25
|
+
|
|
26
|
+
Our normalized text is 54 characters long, dictating a rectangle with
|
|
27
|
+
`c = 8` and `r = 7`:
|
|
28
|
+
|
|
29
|
+
```plain
|
|
30
|
+
ifmanwas
|
|
31
|
+
meanttos
|
|
32
|
+
tayonthe
|
|
33
|
+
groundgo
|
|
34
|
+
dwouldha
|
|
35
|
+
vegivenu
|
|
36
|
+
sroots
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The coded message is obtained by reading down the columns going left to
|
|
40
|
+
right.
|
|
41
|
+
|
|
42
|
+
The message above is coded as:
|
|
43
|
+
|
|
44
|
+
```plain
|
|
45
|
+
imtgdvsfearwermayoogoanouuiontnnlvtwttddesaohghnsseoau
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Output the encoded text in chunks. Phrases that fill perfect squares
|
|
49
|
+
`(r X r)` should be output in `r`-length chunks separated by spaces.
|
|
50
|
+
Imperfect squares will have `n` empty spaces. Those spaces should be distributed evenly across the last `n` rows.
|
|
51
|
+
|
|
52
|
+
```plain
|
|
53
|
+
imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Notice that were we to stack these, we could visually decode the
|
|
57
|
+
cyphertext back in to the original message:
|
|
58
|
+
|
|
59
|
+
```plain
|
|
60
|
+
imtgdvs
|
|
61
|
+
fearwer
|
|
62
|
+
mayoogo
|
|
63
|
+
anouuio
|
|
64
|
+
ntnnlvt
|
|
65
|
+
wttddes
|
|
66
|
+
aohghn
|
|
67
|
+
sseoau
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Submitting Exercises
|
|
71
|
+
|
|
72
|
+
Note that, when trying to submit an exercise, make sure you're exercise file you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
73
|
+
|
|
74
|
+
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
75
|
+
## Source
|
|
76
|
+
|
|
77
|
+
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)
|
|
78
|
+
|
|
79
|
+
## Submitting Incomplete Solutions
|
|
80
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Custom Set
|
|
2
|
+
|
|
3
|
+
Create a custom set type.
|
|
4
|
+
|
|
5
|
+
Sometimes it is necessary to define a custom data structure of some
|
|
6
|
+
type, like a set. In this exercise you will define your own set. How it
|
|
7
|
+
works internally doesn't matter, as long as it behaves like a set of
|
|
8
|
+
unique elements.
|
|
9
|
+
|
|
10
|
+
## Hints
|
|
11
|
+
This exercise requires you to implements a type-specific method for determining equality of instances.
|
|
12
|
+
For more information, see [this page]
|
|
13
|
+
(https://docs.microsoft.com/en-us/dotnet/core/api/System.IEquatable-1) .
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Submitting Exercises
|
|
17
|
+
|
|
18
|
+
Note that, when trying to submit an exercise, make sure you're exercise file you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
19
|
+
|
|
20
|
+
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
21
|
+
|
|
22
|
+
## Submitting Incomplete Solutions
|
|
23
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Diamond
|
|
2
|
+
|
|
3
|
+
The diamond kata takes as its input a letter, and outputs it in a diamond
|
|
4
|
+
shape. Given a letter, it prints a diamond starting with 'A', with the
|
|
5
|
+
supplied letter at the widest point.
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
* The first row contains one 'A'.
|
|
10
|
+
* The last row contains one 'A'.
|
|
11
|
+
* All rows, except the first and last, have exactly two identical letters.
|
|
12
|
+
* All rows have as many trailing spaces as leading spaces. (This might be 0).
|
|
13
|
+
* The diamond is horizontally symmetric.
|
|
14
|
+
* The diamond is vertically symmetric.
|
|
15
|
+
* The diamond has a square shape (width equals height).
|
|
16
|
+
* The letters form a diamond shape.
|
|
17
|
+
* The top half has the letters in ascending order.
|
|
18
|
+
* The bottom half has the letters in descending order.
|
|
19
|
+
* The four corners (containing the spaces) are triangles.
|
|
20
|
+
|
|
21
|
+
## Examples
|
|
22
|
+
|
|
23
|
+
In the following examples, spaces are indicated by `·` characters.
|
|
24
|
+
|
|
25
|
+
Diamond for letter 'A':
|
|
26
|
+
|
|
27
|
+
```plain
|
|
28
|
+
A
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Diamond for letter 'C':
|
|
32
|
+
|
|
33
|
+
```plain
|
|
34
|
+
··A··
|
|
35
|
+
·B·B·
|
|
36
|
+
C···C
|
|
37
|
+
·B·B·
|
|
38
|
+
··A··
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Diamond for letter 'E':
|
|
42
|
+
|
|
43
|
+
```plain
|
|
44
|
+
····A····
|
|
45
|
+
···B·B···
|
|
46
|
+
··C···C··
|
|
47
|
+
·D·····D·
|
|
48
|
+
E·······E
|
|
49
|
+
·D·····D·
|
|
50
|
+
··C···C··
|
|
51
|
+
···B·B···
|
|
52
|
+
····A····
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Hints
|
|
56
|
+
The tests in this exercise are different from your usual tests. Normally, a test checks if for a given input, the output matches the expected value. This is called *value-based testing*. However, this exercise uses *property-based testing*, where the tests check if for a range of inputs, the output has a specific property. The two key differences that differentiate property-based testing from value-based testing are:
|
|
57
|
+
|
|
58
|
+
1. A property-based test works not with a single input value, but with many.
|
|
59
|
+
1. A property-based test verifies properties, not concrete values.
|
|
60
|
+
|
|
61
|
+
For this exercise, the tests all verify a property of the diamond shape your code should be producing. Furthermore, all tests check if the property they test holds for all valid input letters ('A' to 'Z').
|
|
62
|
+
|
|
63
|
+
For more information on property-based testing, see [this article](http://www.erikschierboom.com/2016/02/22/property-based-testing/).
|
|
64
|
+
|
|
65
|
+
### Submitting Exercises
|
|
66
|
+
|
|
67
|
+
Note that, when trying to submit an exercise, make sure you're exercise file you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
68
|
+
|
|
69
|
+
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
70
|
+
## Source
|
|
71
|
+
|
|
72
|
+
Seb Rose [http://claysnow.co.uk/recycling-tests-in-tdd/](http://claysnow.co.uk/recycling-tests-in-tdd/)
|
|
73
|
+
|
|
74
|
+
## Submitting Incomplete Solutions
|
|
75
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Difference Of Squares
|
|
2
|
+
|
|
3
|
+
Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
|
|
4
|
+
|
|
5
|
+
The square of the sum of the first ten natural numbers is
|
|
6
|
+
(1 + 2 + ... + 10)² = 55² = 3025.
|
|
7
|
+
|
|
8
|
+
The sum of the squares of the first ten natural numbers is
|
|
9
|
+
1² + 2² + ... + 10² = 385.
|
|
10
|
+
|
|
11
|
+
Hence the difference between the square of the sum of the first
|
|
12
|
+
ten natural numbers and the sum of the squares of the first ten
|
|
13
|
+
natural numbers is 3025 - 385 = 2640.
|
|
14
|
+
|
|
15
|
+
## Hints
|
|
16
|
+
This exercise requires you to process a collection of data. You can simplify your code by using LINQ (Language Integrated Query).
|
|
17
|
+
For more information, see [this page]
|
|
18
|
+
(https://docs.microsoft.com/en-us/dotnet/articles/standard/using-linq).
|
|
19
|
+
|
|
20
|
+
### Submitting Exercises
|
|
21
|
+
|
|
22
|
+
Note that, when trying to submit an exercise, make sure you're exercise file you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
23
|
+
|
|
24
|
+
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
25
|
+
## Source
|
|
26
|
+
|
|
27
|
+
Problem 6 at Project Euler [http://projecteuler.net/problem=6](http://projecteuler.net/problem=6)
|
|
28
|
+
|
|
29
|
+
## Submitting Incomplete Solutions
|
|
30
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Diffie Hellman
|
|
2
|
+
|
|
3
|
+
Diffie-Hellman key exchange.
|
|
4
|
+
|
|
5
|
+
Alice and Bob use Diffie-Hellman key exchange to share secrets. They
|
|
6
|
+
start with prime numbers, pick private keys, generate and share public
|
|
7
|
+
keys, and then generate a shared secret key.
|
|
8
|
+
|
|
9
|
+
## Step 0
|
|
10
|
+
|
|
11
|
+
The test program supplies prime numbers p and g.
|
|
12
|
+
|
|
13
|
+
## Step 1
|
|
14
|
+
|
|
15
|
+
Alice picks a private key, a, greater than 1 and less than p. Bob does
|
|
16
|
+
the same to pick a private key b.
|
|
17
|
+
|
|
18
|
+
## Step 2
|
|
19
|
+
|
|
20
|
+
Alice calculates a public key A.
|
|
21
|
+
|
|
22
|
+
A = g**a mod p
|
|
23
|
+
|
|
24
|
+
Using the same p and g, Bob similarly calculates a public key B from his
|
|
25
|
+
private key b.
|
|
26
|
+
|
|
27
|
+
## Step 3
|
|
28
|
+
|
|
29
|
+
Alice and Bob exchange public keys. Alice calculates secret key s.
|
|
30
|
+
|
|
31
|
+
s = B**a mod p
|
|
32
|
+
|
|
33
|
+
Bob calculates
|
|
34
|
+
|
|
35
|
+
s = A**b mod p
|
|
36
|
+
|
|
37
|
+
The calculations produce the same result! Alice and Bob now share
|
|
38
|
+
secret s.
|
|
39
|
+
|
|
40
|
+
## Hints
|
|
41
|
+
This exercise requires you to perform calculations on large numbers. To correctly represent large numbers, the
|
|
42
|
+
[BigInteger](https://msdn.microsoft.com/en-us/library/system.numerics.biginteger(v=vs.110).aspx) struct is used.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### Submitting Exercises
|
|
46
|
+
|
|
47
|
+
Note that, when trying to submit an exercise, make sure you're exercise file you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
48
|
+
|
|
49
|
+
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
50
|
+
## Source
|
|
51
|
+
|
|
52
|
+
Wikipedia, 1024 bit key from www.cryptopp.com/wiki. [http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange](http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange)
|
|
53
|
+
|
|
54
|
+
## Submitting Incomplete Solutions
|
|
55
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Dominoes
|
|
2
|
+
|
|
3
|
+
Make a chain of dominoes.
|
|
4
|
+
|
|
5
|
+
Compute a way to order a given set of dominoes in such a way that they form a
|
|
6
|
+
correct domino chain (the dots on one half of a stone match the dots on the
|
|
7
|
+
neighbouring half of an adjacent stone) and that dots on the halfs of the stones
|
|
8
|
+
which don't have a neighbour (the first and last stone) match each other.
|
|
9
|
+
|
|
10
|
+
For example given the stones `21`, `23` and `13` you should compute something
|
|
11
|
+
like `12 23 31` or `32 21 13` or `13 32 21` etc, where the first and last numbers are the same.
|
|
12
|
+
|
|
13
|
+
For stones 12, 41 and 23 the resulting chain is not valid: 41 12 23's first and last numbers are not the same. 4 != 3
|
|
14
|
+
|
|
15
|
+
Some test cases may use duplicate stones in a chain solution, assume that multiple Domino sets are being used.
|
|
16
|
+
|
|
17
|
+
### Submitting Exercises
|
|
18
|
+
|
|
19
|
+
Note that, when trying to submit an exercise, make sure you're exercise file you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
20
|
+
|
|
21
|
+
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
22
|
+
|
|
23
|
+
## Submitting Incomplete Solutions
|
|
24
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Dot Dsl
|
|
2
|
+
|
|
3
|
+
Write a Domain Specific Language similar to the Graphviz dot language.
|
|
4
|
+
|
|
5
|
+
A [Domain Specific Language
|
|
6
|
+
(DSL)](https://en.wikipedia.org/wiki/Domain-specific_language) is a
|
|
7
|
+
small language optimized for a specific domain.
|
|
8
|
+
|
|
9
|
+
For example the dot language of [Graphviz](http://graphviz.org) allows
|
|
10
|
+
you to write a textual description of a graph which is then transformed
|
|
11
|
+
into a picture by one of the graphviz tools (such as `dot`). A simple
|
|
12
|
+
graph looks like this:
|
|
13
|
+
|
|
14
|
+
graph {
|
|
15
|
+
graph [bgcolor="yellow"]
|
|
16
|
+
a [color="red"]
|
|
17
|
+
b [color="blue"]
|
|
18
|
+
a -- b [color="green"]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
Putting this in a file `example.dot` and running `dot example.dot -T png
|
|
22
|
+
-o example.png` creates an image `example.png` with red and blue circle
|
|
23
|
+
connected by a green line on a yellow background.
|
|
24
|
+
|
|
25
|
+
Create a DSL similar to the dot language.
|
|
26
|
+
|
|
27
|
+
## Hints
|
|
28
|
+
This exercise requires you to implement classes with a custom equality check. For more information, see [this page](https://msdn.microsoft.com/en-us/library/bsc2ak47(v=vs.110).aspx).
|
|
29
|
+
|
|
30
|
+
### Submitting Exercises
|
|
31
|
+
|
|
32
|
+
Note that, when trying to submit an exercise, make sure you're exercise file you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
33
|
+
|
|
34
|
+
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
35
|
+
|
|
36
|
+
## Submitting Incomplete Solutions
|
|
37
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Error Handling
|
|
2
|
+
|
|
3
|
+
Implement various kinds of error handling and resource management.
|
|
4
|
+
|
|
5
|
+
An important point of programming is how to handle errors and close
|
|
6
|
+
resources even if errors occur.
|
|
7
|
+
|
|
8
|
+
This exercise requires you to handle various errors. Because error handling
|
|
9
|
+
is rather programming language specific you'll have to refer to the tests
|
|
10
|
+
for your track to see what's exactly required.
|
|
11
|
+
|
|
12
|
+
### Submitting Exercises
|
|
13
|
+
|
|
14
|
+
Note that, when trying to submit an exercise, make sure you're exercise file you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
15
|
+
|
|
16
|
+
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
17
|
+
|
|
18
|
+
## Submitting Incomplete Solutions
|
|
19
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Etl
|
|
2
|
+
|
|
3
|
+
We are going to do the `Transform` step of an Extract-Transform-Load.
|
|
4
|
+
|
|
5
|
+
### ETL
|
|
6
|
+
Extract-Transform-Load (ETL) is a fancy way of saying, "We have some crufty, legacy data over in this system, and now we need it in this shiny new system over here, so
|
|
7
|
+
we're going to migrate this."
|
|
8
|
+
|
|
9
|
+
(Typically, this is followed by, "We're only going to need to run this
|
|
10
|
+
once." That's then typically followed by much forehead slapping and
|
|
11
|
+
moaning about how stupid we could possibly be.)
|
|
12
|
+
|
|
13
|
+
### The goal
|
|
14
|
+
We're going to extract some scrabble scores from a legacy system.
|
|
15
|
+
|
|
16
|
+
The old system stored a list of letters per score:
|
|
17
|
+
|
|
18
|
+
- 1 point: "A", "E", "I", "O", "U", "L", "N", "R", "S", "T",
|
|
19
|
+
- 2 points: "D", "G",
|
|
20
|
+
- 3 points: "B", "C", "M", "P",
|
|
21
|
+
- 4 points: "F", "H", "V", "W", "Y",
|
|
22
|
+
- 5 points: "K",
|
|
23
|
+
- 8 points: "J", "X",
|
|
24
|
+
- 10 points: "Q", "Z",
|
|
25
|
+
|
|
26
|
+
The shiny new scrabble system instead stores the score per letter, which
|
|
27
|
+
makes it much faster and easier to calculate the score for a word. It
|
|
28
|
+
also stores the letters in lower-case regardless of the case of the
|
|
29
|
+
input letters:
|
|
30
|
+
|
|
31
|
+
- "a" is worth 1 point.
|
|
32
|
+
- "b" is worth 3 points.
|
|
33
|
+
- "c" is worth 3 points.
|
|
34
|
+
- "d" is worth 2 points.
|
|
35
|
+
- Etc.
|
|
36
|
+
|
|
37
|
+
Your mission, should you choose to accept it, is to transform the legacy data
|
|
38
|
+
format to the shiny new format.
|
|
39
|
+
|
|
40
|
+
### Notes
|
|
41
|
+
|
|
42
|
+
A final note about scoring, Scrabble is played around the world in a
|
|
43
|
+
variety of languages, each with its own unique scoring table. For
|
|
44
|
+
example, an "E" is scored at 2 in the Māori-language version of the
|
|
45
|
+
game while being scored at 4 in the Hawaiian-language version.
|
|
46
|
+
|
|
47
|
+
### Submitting Exercises
|
|
48
|
+
|
|
49
|
+
Note that, when trying to submit an exercise, make sure you're exercise file you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
50
|
+
|
|
51
|
+
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
52
|
+
## Source
|
|
53
|
+
|
|
54
|
+
The Jumpstart Lab team [http://jumpstartlab.com](http://jumpstartlab.com)
|
|
55
|
+
|
|
56
|
+
## Submitting Incomplete Solutions
|
|
57
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Flatten Array
|
|
2
|
+
|
|
3
|
+
Take a nested list and return a single flattened list with all values except nil/null.
|
|
4
|
+
|
|
5
|
+
The challenge is to write a function that accepts an arbitrarily-deep nested list-like structure and returns a flattened structure without any nil/null values.
|
|
6
|
+
|
|
7
|
+
For Example
|
|
8
|
+
|
|
9
|
+
input: [1,[2,3,null,4],[null],5]
|
|
10
|
+
|
|
11
|
+
output: [1,2,3,4,5]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Submitting Exercises
|
|
15
|
+
|
|
16
|
+
Note that, when trying to submit an exercise, make sure you're exercise file you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
17
|
+
|
|
18
|
+
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
19
|
+
## Source
|
|
20
|
+
|
|
21
|
+
Interview Question [https://reference.wolfram.com/language/ref/Flatten.html](https://reference.wolfram.com/language/ref/Flatten.html)
|
|
22
|
+
|
|
23
|
+
## Submitting Incomplete Solutions
|
|
24
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Food Chain
|
|
2
|
+
|
|
3
|
+
Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
|
|
4
|
+
|
|
5
|
+
While you could copy/paste the lyrics,
|
|
6
|
+
or read them from a file, this problem is much more
|
|
7
|
+
interesting if you approach it algorithmically.
|
|
8
|
+
|
|
9
|
+
This is a [cumulative song](http://en.wikipedia.org/wiki/Cumulative_song) of unknown origin.
|
|
10
|
+
|
|
11
|
+
This is one of many common variants.
|
|
12
|
+
|
|
13
|
+
```plain
|
|
14
|
+
I know an old lady who swallowed a fly.
|
|
15
|
+
I don't know why she swallowed the fly. Perhaps she'll die.
|
|
16
|
+
|
|
17
|
+
I know an old lady who swallowed a spider.
|
|
18
|
+
It wriggled and jiggled and tickled inside her.
|
|
19
|
+
She swallowed the spider to catch the fly.
|
|
20
|
+
I don't know why she swallowed the fly. Perhaps she'll die.
|
|
21
|
+
|
|
22
|
+
I know an old lady who swallowed a bird.
|
|
23
|
+
How absurd to swallow a bird!
|
|
24
|
+
She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
|
|
25
|
+
She swallowed the spider to catch the fly.
|
|
26
|
+
I don't know why she swallowed the fly. Perhaps she'll die.
|
|
27
|
+
|
|
28
|
+
I know an old lady who swallowed a cat.
|
|
29
|
+
Imagine that, to swallow a cat!
|
|
30
|
+
She swallowed the cat to catch the bird.
|
|
31
|
+
She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
|
|
32
|
+
She swallowed the spider to catch the fly.
|
|
33
|
+
I don't know why she swallowed the fly. Perhaps she'll die.
|
|
34
|
+
|
|
35
|
+
I know an old lady who swallowed a dog.
|
|
36
|
+
What a hog, to swallow a dog!
|
|
37
|
+
She swallowed the dog to catch the cat.
|
|
38
|
+
She swallowed the cat to catch the bird.
|
|
39
|
+
She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
|
|
40
|
+
She swallowed the spider to catch the fly.
|
|
41
|
+
I don't know why she swallowed the fly. Perhaps she'll die.
|
|
42
|
+
|
|
43
|
+
I know an old lady who swallowed a goat.
|
|
44
|
+
Just opened her throat and swallowed a goat!
|
|
45
|
+
She swallowed the goat to catch the dog.
|
|
46
|
+
She swallowed the dog to catch the cat.
|
|
47
|
+
She swallowed the cat to catch the bird.
|
|
48
|
+
She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
|
|
49
|
+
She swallowed the spider to catch the fly.
|
|
50
|
+
I don't know why she swallowed the fly. Perhaps she'll die.
|
|
51
|
+
|
|
52
|
+
I know an old lady who swallowed a cow.
|
|
53
|
+
I don't know how she swallowed a cow!
|
|
54
|
+
She swallowed the cow to catch the goat.
|
|
55
|
+
She swallowed the goat to catch the dog.
|
|
56
|
+
She swallowed the dog to catch the cat.
|
|
57
|
+
She swallowed the cat to catch the bird.
|
|
58
|
+
She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
|
|
59
|
+
She swallowed the spider to catch the fly.
|
|
60
|
+
I don't know why she swallowed the fly. Perhaps she'll die.
|
|
61
|
+
|
|
62
|
+
I know an old lady who swallowed a horse.
|
|
63
|
+
She's dead, of course!
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Hints
|
|
67
|
+
- Try to capture the structure of the song in your code, where you build up the song by composing its parts.
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
### Submitting Exercises
|
|
71
|
+
|
|
72
|
+
Note that, when trying to submit an exercise, make sure you're exercise file you're submitting is in the `exercism/csharp/<exerciseName>` directory.
|
|
73
|
+
|
|
74
|
+
For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
|
|
75
|
+
## Source
|
|
76
|
+
|
|
77
|
+
Wikipedia [http://en.wikipedia.org/wiki/There_Was_an_Old_Lady_Who_Swallowed_a_Fly](http://en.wikipedia.org/wiki/There_Was_an_Old_Lady_Who_Swallowed_a_Fly)
|
|
78
|
+
|
|
79
|
+
## Submitting Incomplete Solutions
|
|
80
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|