trackler 2.2.0.1 → 2.2.0.2
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/tracks/fake/config.json +4 -3
- data/fixtures/tracks/fruit/config.json +4 -3
- data/lib/trackler/track.rb +2 -2
- data/lib/trackler/version.rb +1 -1
- data/tracks/{java/exercises/allergies/.meta/readme.go.tmpl → c/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/c/exercises/acronym/README.md +47 -0
- data/tracks/c/exercises/all-your-base/README.md +67 -0
- data/tracks/c/exercises/allergies/README.md +69 -0
- data/tracks/c/exercises/anagram/README.md +45 -0
- data/tracks/c/exercises/atbash-cipher/README.md +66 -0
- data/tracks/c/exercises/beer-song/README.md +359 -0
- data/tracks/c/exercises/binary/README.md +67 -0
- data/tracks/c/exercises/binary-search/README.md +73 -0
- data/tracks/c/exercises/bob/README.md +50 -0
- data/tracks/c/exercises/clock/README.md +45 -0
- data/tracks/c/exercises/difference-of-squares/README.md +51 -0
- data/tracks/c/exercises/gigasecond/README.md +43 -0
- data/tracks/c/exercises/grains/README.md +66 -0
- data/tracks/c/exercises/hamming/README.md +74 -0
- data/tracks/c/exercises/hello-world/README.md +53 -0
- data/tracks/c/exercises/isogram/README.md +51 -0
- data/tracks/c/exercises/largest-series-product/README.md +52 -0
- data/tracks/c/exercises/leap/README.md +65 -0
- data/tracks/c/exercises/meetup/README.md +62 -0
- data/tracks/c/exercises/nth-prime/README.md +47 -0
- data/tracks/c/exercises/nucleotide-count/README.md +65 -0
- data/tracks/c/exercises/palindrome-products/README.md +72 -0
- data/tracks/c/exercises/pangram/README.md +47 -0
- data/tracks/c/exercises/pascals-triangle/README.md +53 -0
- data/tracks/c/exercises/perfect-numbers/README.md +56 -0
- data/tracks/c/exercises/phone-number/README.md +66 -0
- data/tracks/c/exercises/raindrops/README.md +56 -0
- data/tracks/c/exercises/react/README.md +51 -0
- data/tracks/c/exercises/rna-transcription/README.md +57 -0
- data/tracks/c/exercises/robot-simulator/README.md +66 -0
- data/tracks/c/exercises/roman-numerals/README.md +81 -0
- data/tracks/c/exercises/scrabble-score/README.md +76 -0
- data/tracks/c/exercises/series/README.md +59 -0
- data/tracks/c/exercises/sieve/README.md +66 -0
- data/tracks/c/exercises/space-age/README.md +56 -0
- data/tracks/c/exercises/sum-of-multiples/README.md +50 -0
- data/tracks/c/exercises/triangle/README.md +58 -0
- data/tracks/c/exercises/word-count/README.md +51 -0
- data/tracks/ceylon/README.md +3 -3
- data/tracks/ceylon/config/exercise-readme-insert.md +1 -0
- data/tracks/{java/exercises/accumulate/.meta/readme.go.tmpl → ceylon/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/ceylon/exercises/anagram/README.md +29 -0
- data/tracks/ceylon/{docs/EXERCISE_README_INSERT.md → exercises/bracket-push/README.md} +12 -0
- data/tracks/ceylon/exercises/hamming/README.md +58 -0
- data/tracks/ceylon/exercises/largest-series-product/README.md +36 -0
- data/tracks/ceylon/exercises/leap/README.md +49 -0
- data/tracks/ceylon/exercises/react/README.md +35 -0
- data/tracks/ceylon/exercises/sieve/README.md +50 -0
- data/tracks/{java/exercises/acronym/.meta/readme.go.tmpl → delphi/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/delphi/exercises/allergies/README.md +58 -0
- data/tracks/delphi/exercises/bank-account/README.md +51 -0
- data/tracks/delphi/exercises/beer-song/README.md +348 -0
- data/tracks/delphi/exercises/binary-search/README.md +62 -0
- data/tracks/delphi/exercises/bob/README.md +39 -0
- data/tracks/delphi/exercises/book-store/README.md +95 -0
- data/tracks/delphi/exercises/bowling/README.md +74 -0
- data/tracks/delphi/exercises/circular-buffer/README.md +71 -0
- data/tracks/delphi/exercises/clock/README.md +34 -0
- data/tracks/delphi/exercises/collatz-conjecture/README.md +54 -0
- data/tracks/delphi/exercises/etl/README.md +72 -0
- data/tracks/delphi/exercises/grains/README.md +55 -0
- data/tracks/delphi/exercises/hamming/README.md +63 -0
- data/tracks/delphi/exercises/hello-world/README.md +42 -0
- data/tracks/delphi/exercises/leap/README.md +54 -0
- data/tracks/delphi/exercises/minesweeper/README.md +51 -0
- data/tracks/delphi/exercises/nucleotide-count/README.md +54 -0
- data/tracks/delphi/exercises/perfect-numbers/README.md +45 -0
- data/tracks/delphi/exercises/phone-number/README.md +55 -0
- data/tracks/delphi/exercises/poker/README.md +33 -0
- data/tracks/delphi/exercises/raindrops/README.md +45 -0
- data/tracks/delphi/exercises/rna-transcription/README.md +46 -0
- data/tracks/delphi/exercises/roman-numerals/README.md +70 -0
- data/tracks/delphi/exercises/saddle-points/README.md +54 -0
- data/tracks/delphi/exercises/triangle/README.md +47 -0
- data/tracks/delphi/exercises/two-fer/README.md +69 -0
- data/tracks/delphi/exercises/wordy/README.md +84 -0
- data/tracks/{java/exercises/all-your-base/.meta/readme.go.tmpl → factor/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/factor/exercises/hello-world/README.md +34 -0
- data/tracks/factor/exercises/isogram/README.md +32 -0
- data/tracks/factor/exercises/leap/README.md +46 -0
- data/tracks/factor/exercises/two-fer/README.md +61 -0
- data/tracks/haskell/config/exercise_readme.go.tmpl +16 -0
- data/tracks/haskell/exercises/accumulate/README.md +89 -0
- data/tracks/haskell/exercises/acronym/README.md +69 -0
- data/tracks/haskell/exercises/all-your-base/README.md +89 -0
- data/tracks/haskell/exercises/allergies/README.md +104 -0
- data/tracks/haskell/exercises/alphametics/README.md +96 -0
- data/tracks/haskell/exercises/anagram/README.md +91 -0
- data/tracks/haskell/exercises/atbash-cipher/README.md +88 -0
- data/tracks/haskell/exercises/bank-account/README.md +102 -0
- data/tracks/haskell/exercises/beer-song/README.md +401 -0
- data/tracks/haskell/exercises/binary/README.md +89 -0
- data/tracks/haskell/exercises/binary-search-tree/README.md +133 -0
- data/tracks/haskell/exercises/bob/README.md +72 -0
- data/tracks/haskell/exercises/bowling/README.md +128 -0
- data/tracks/haskell/exercises/bracket-push/README.md +64 -0
- data/tracks/haskell/exercises/change/README.md +77 -0
- data/tracks/haskell/exercises/clock/README.md +86 -0
- data/tracks/haskell/exercises/connect/README.md +88 -0
- data/tracks/haskell/exercises/crypto-square/README.md +128 -0
- data/tracks/haskell/exercises/custom-set/README.md +94 -0
- data/tracks/haskell/exercises/difference-of-squares/README.md +73 -0
- data/tracks/haskell/exercises/dominoes/README.md +72 -0
- data/tracks/haskell/exercises/etl/README.md +105 -0
- data/tracks/haskell/exercises/food-chain/README.md +145 -0
- data/tracks/haskell/exercises/forth/README.md +98 -0
- data/tracks/haskell/exercises/gigasecond/README.md +65 -0
- data/tracks/haskell/exercises/go-counting/README.md +109 -0
- data/tracks/haskell/exercises/grade-school/README.md +111 -0
- data/tracks/haskell/exercises/grains/README.md +88 -0
- data/tracks/haskell/exercises/hamming/README.md +96 -0
- data/tracks/haskell/exercises/hello-world/README.md +83 -0
- data/tracks/haskell/exercises/hexadecimal/README.md +68 -0
- data/tracks/haskell/exercises/house/README.md +187 -0
- data/tracks/haskell/exercises/kindergarten-garden/README.md +120 -0
- data/tracks/haskell/exercises/largest-series-product/README.md +74 -0
- data/tracks/haskell/exercises/leap/README.md +100 -0
- data/tracks/haskell/exercises/lens-person/README.md +66 -0
- data/tracks/haskell/exercises/linked-list/README.md +104 -0
- data/tracks/haskell/exercises/list-ops/README.md +64 -0
- data/tracks/haskell/exercises/luhn/README.md +125 -0
- data/tracks/haskell/exercises/matrix/README.md +125 -0
- data/tracks/haskell/exercises/meetup/README.md +92 -0
- data/tracks/haskell/exercises/minesweeper/README.md +84 -0
- data/tracks/haskell/exercises/nth-prime/README.md +69 -0
- data/tracks/haskell/exercises/nucleotide-count/README.md +87 -0
- data/tracks/haskell/exercises/ocr-numbers/README.md +139 -0
- data/tracks/haskell/exercises/octal/README.md +115 -0
- data/tracks/haskell/exercises/palindrome-products/README.md +115 -0
- data/tracks/haskell/exercises/pangram/README.md +69 -0
- data/tracks/haskell/exercises/parallel-letter-frequency/README.md +76 -0
- data/tracks/haskell/exercises/pascals-triangle/README.md +75 -0
- data/tracks/haskell/exercises/phone-number/README.md +88 -0
- data/tracks/haskell/exercises/pig-latin/README.md +78 -0
- data/tracks/haskell/exercises/pov/README.md +100 -0
- data/tracks/haskell/exercises/prime-factors/README.md +90 -0
- data/tracks/haskell/exercises/pythagorean-triplet/README.md +78 -0
- data/tracks/haskell/exercises/queen-attack/README.md +105 -0
- data/tracks/haskell/exercises/raindrops/README.md +78 -0
- data/tracks/haskell/exercises/rna-transcription/README.md +79 -0
- data/tracks/haskell/exercises/robot-name/README.md +90 -0
- data/tracks/haskell/exercises/robot-simulator/README.md +105 -0
- data/tracks/haskell/exercises/roman-numerals/README.md +112 -0
- data/tracks/haskell/exercises/run-length-encoding/README.md +84 -0
- data/tracks/haskell/exercises/saddle-points/README.md +87 -0
- data/tracks/haskell/exercises/say/README.md +123 -0
- data/tracks/haskell/exercises/scrabble-score/README.md +98 -0
- data/tracks/haskell/exercises/secret-handshake/README.md +89 -0
- data/tracks/haskell/exercises/series/README.md +106 -0
- data/tracks/haskell/exercises/sgf-parsing/README.md +146 -0
- data/tracks/haskell/exercises/sieve/README.md +88 -0
- data/tracks/haskell/exercises/simple-cipher/README.md +144 -0
- data/tracks/haskell/exercises/simple-linked-list/README.md +101 -0
- data/tracks/haskell/exercises/space-age/README.md +94 -0
- data/tracks/haskell/exercises/spiral-matrix/README.md +84 -0
- data/tracks/haskell/exercises/strain/README.md +94 -0
- data/tracks/haskell/exercises/sublist/README.md +80 -0
- data/tracks/haskell/exercises/sum-of-multiples/README.md +72 -0
- data/tracks/haskell/exercises/triangle/README.md +80 -0
- data/tracks/haskell/exercises/trinary/README.md +96 -0
- data/tracks/haskell/exercises/word-count/README.md +96 -0
- data/tracks/haskell/exercises/wordy/README.md +122 -0
- data/tracks/haskell/exercises/zebra-puzzle/README.md +86 -0
- data/tracks/haskell/exercises/zipper/README.md +85 -0
- data/tracks/java/config/exercise_readme.go.tmpl +16 -0
- data/tracks/java/exercises/accumulate/README.md +0 -1
- data/tracks/java/exercises/acronym/README.md +0 -1
- data/tracks/java/exercises/all-your-base/README.md +0 -1
- data/tracks/java/exercises/allergies/README.md +0 -1
- data/tracks/java/exercises/anagram/README.md +0 -1
- data/tracks/java/exercises/atbash-cipher/README.md +0 -1
- data/tracks/java/exercises/bank-account/README.md +0 -1
- data/tracks/java/exercises/beer-song/README.md +0 -1
- data/tracks/java/exercises/binary/README.md +0 -1
- data/tracks/java/exercises/binary-search/README.md +0 -1
- data/tracks/java/exercises/binary-search-tree/README.md +0 -1
- data/tracks/java/exercises/bob/README.md +0 -1
- data/tracks/java/exercises/book-store/README.md +0 -1
- data/tracks/java/exercises/bowling/README.md +0 -1
- data/tracks/java/exercises/bracket-push/README.md +0 -1
- data/tracks/java/exercises/change/README.md +0 -1
- data/tracks/java/exercises/circular-buffer/README.md +0 -1
- data/tracks/java/exercises/clock/README.md +0 -1
- data/tracks/java/exercises/collatz-conjecture/README.md +0 -1
- data/tracks/java/exercises/complex-numbers/README.md +0 -1
- data/tracks/java/exercises/crypto-square/README.md +0 -1
- data/tracks/java/exercises/custom-set/README.md +0 -1
- data/tracks/java/exercises/diamond/README.md +0 -1
- data/tracks/java/exercises/difference-of-squares/README.md +0 -1
- data/tracks/java/exercises/etl/README.md +0 -1
- data/tracks/java/exercises/flatten-array/README.md +0 -1
- data/tracks/java/exercises/food-chain/README.md +0 -1
- data/tracks/java/exercises/gigasecond/README.md +0 -1
- data/tracks/java/exercises/grade-school/README.md +0 -1
- data/tracks/java/exercises/hamming/README.md +0 -1
- data/tracks/java/exercises/hello-world/README.md +0 -1
- data/tracks/java/exercises/hexadecimal/README.md +0 -1
- data/tracks/java/exercises/isogram/README.md +0 -1
- data/tracks/java/exercises/kindergarten-garden/README.md +0 -1
- data/tracks/java/exercises/largest-series-product/README.md +0 -1
- data/tracks/java/exercises/linked-list/README.md +0 -1
- data/tracks/java/exercises/list-ops/README.md +0 -1
- data/tracks/java/exercises/luhn/README.md +0 -1
- data/tracks/java/exercises/matrix/README.md +0 -1
- data/tracks/java/exercises/meetup/README.md +0 -1
- data/tracks/java/exercises/minesweeper/README.md +0 -1
- data/tracks/java/exercises/nth-prime/README.md +0 -1
- data/tracks/java/exercises/nucleotide-count/README.md +0 -1
- data/tracks/java/exercises/ocr-numbers/README.md +0 -1
- data/tracks/java/exercises/octal/README.md +0 -1
- data/tracks/java/exercises/palindrome-products/README.md +0 -1
- data/tracks/java/exercises/pangram/README.md +0 -1
- data/tracks/java/exercises/pascals-triangle/README.md +0 -1
- data/tracks/java/exercises/perfect-numbers/README.md +0 -1
- data/tracks/java/exercises/phone-number/README.md +0 -1
- data/tracks/java/exercises/pig-latin/README.md +0 -1
- data/tracks/java/exercises/poker/README.md +0 -1
- data/tracks/java/exercises/prime-factors/README.md +0 -1
- data/tracks/java/exercises/pythagorean-triplet/README.md +0 -1
- data/tracks/java/exercises/queen-attack/README.md +0 -1
- data/tracks/java/exercises/raindrops/README.md +0 -1
- data/tracks/java/exercises/rectangles/README.md +0 -1
- data/tracks/java/exercises/rna-transcription/README.md +0 -1
- data/tracks/java/exercises/robot-name/README.md +0 -1
- data/tracks/java/exercises/robot-simulator/README.md +0 -1
- data/tracks/java/exercises/roman-numerals/README.md +0 -1
- data/tracks/java/exercises/rotational-cipher/README.md +47 -0
- data/tracks/java/exercises/run-length-encoding/README.md +0 -1
- data/tracks/java/exercises/saddle-points/README.md +0 -1
- data/tracks/java/exercises/scrabble-score/README.md +0 -1
- data/tracks/java/exercises/secret-handshake/README.md +0 -1
- data/tracks/java/exercises/series/README.md +0 -1
- data/tracks/java/exercises/sieve/README.md +0 -1
- data/tracks/java/exercises/simple-cipher/README.md +0 -1
- data/tracks/java/exercises/simple-linked-list/README.md +0 -1
- data/tracks/java/exercises/space-age/README.md +0 -1
- data/tracks/java/exercises/spiral-matrix/README.md +0 -1
- data/tracks/java/exercises/strain/README.md +0 -1
- data/tracks/java/exercises/sublist/README.md +0 -1
- data/tracks/java/exercises/sum-of-multiples/README.md +0 -1
- data/tracks/java/exercises/transpose/README.md +0 -1
- data/tracks/java/exercises/triangle/README.md +0 -1
- data/tracks/java/exercises/trinary/README.md +0 -1
- data/tracks/java/exercises/twelve-days/README.md +0 -1
- data/tracks/java/exercises/two-fer/README.md +0 -1
- data/tracks/java/exercises/word-count/README.md +0 -1
- data/tracks/java/exercises/word-search/README.md +0 -1
- data/tracks/java/exercises/wordy/README.md +0 -1
- data/tracks/javascript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/javascript/exercises/accumulate/README.md +59 -0
- data/tracks/javascript/exercises/acronym/README.md +39 -0
- data/tracks/javascript/exercises/all-your-base/README.md +59 -0
- data/tracks/javascript/exercises/allergies/README.md +61 -0
- data/tracks/javascript/exercises/alphametics/README.md +59 -0
- data/tracks/javascript/exercises/anagram/README.md +37 -0
- data/tracks/javascript/exercises/atbash-cipher/README.md +58 -0
- data/tracks/javascript/exercises/beer-song/README.md +351 -0
- data/tracks/javascript/exercises/binary/README.md +59 -0
- data/tracks/javascript/exercises/binary-search/README.md +65 -0
- data/tracks/javascript/exercises/binary-search-tree/README.md +84 -0
- data/tracks/javascript/exercises/bob/README.md +42 -0
- data/tracks/javascript/exercises/bowling/README.md +77 -0
- data/tracks/javascript/exercises/bracket-push/README.md +34 -0
- data/tracks/javascript/exercises/circular-buffer/README.md +74 -0
- data/tracks/javascript/exercises/clock/README.md +37 -0
- data/tracks/javascript/exercises/crypto-square/README.md +98 -0
- data/tracks/javascript/exercises/custom-set/README.md +35 -0
- data/tracks/javascript/exercises/diamond/README.md +83 -0
- data/tracks/javascript/exercises/difference-of-squares/README.md +43 -0
- data/tracks/javascript/exercises/etl/README.md +75 -0
- data/tracks/javascript/exercises/flatten-array/README.md +42 -0
- data/tracks/javascript/exercises/food-chain/README.md +94 -0
- data/tracks/javascript/exercises/gigasecond/README.md +35 -0
- data/tracks/javascript/exercises/grade-school/README.md +66 -0
- data/tracks/javascript/exercises/grains/README.md +58 -0
- data/tracks/javascript/exercises/hamming/README.md +66 -0
- data/tracks/javascript/exercises/hello-world/README.md +132 -0
- data/tracks/javascript/exercises/hexadecimal/README.md +38 -0
- data/tracks/javascript/exercises/isogram/README.md +43 -0
- data/tracks/javascript/exercises/kindergarten-garden/README.md +90 -0
- data/tracks/javascript/exercises/largest-series-product/README.md +44 -0
- data/tracks/javascript/exercises/leap/README.md +57 -0
- data/tracks/javascript/exercises/linked-list/README.md +58 -0
- data/tracks/javascript/exercises/list-ops/README.md +34 -0
- data/tracks/javascript/exercises/luhn/README.md +95 -0
- data/tracks/javascript/exercises/matrix/README.md +69 -0
- data/tracks/javascript/exercises/meetup/README.md +54 -0
- data/tracks/javascript/exercises/minesweeper/README.md +54 -0
- data/tracks/javascript/exercises/nth-prime/README.md +39 -0
- data/tracks/javascript/exercises/nucleotide-count/README.md +57 -0
- data/tracks/javascript/exercises/ocr-numbers/README.md +109 -0
- data/tracks/javascript/exercises/octal/README.md +73 -0
- data/tracks/javascript/exercises/palindrome-products/README.md +64 -0
- data/tracks/javascript/exercises/pangram/README.md +39 -0
- data/tracks/javascript/exercises/pascals-triangle/README.md +45 -0
- data/tracks/javascript/exercises/perfect-numbers/README.md +48 -0
- data/tracks/javascript/exercises/phone-number/README.md +58 -0
- data/tracks/javascript/exercises/pig-latin/README.md +48 -0
- data/tracks/javascript/exercises/point-mutations/README.md +65 -0
- data/tracks/javascript/exercises/prime-factors/README.md +60 -0
- data/tracks/javascript/exercises/proverb/README.md +42 -0
- data/tracks/javascript/exercises/pythagorean-triplet/README.md +48 -0
- data/tracks/javascript/exercises/queen-attack/README.md +57 -0
- data/tracks/javascript/exercises/raindrops/README.md +48 -0
- data/tracks/javascript/exercises/rna-transcription/README.md +49 -0
- data/tracks/javascript/exercises/robot-name/README.md +46 -0
- data/tracks/javascript/exercises/robot-simulator/README.md +58 -0
- data/tracks/javascript/exercises/roman-numerals/README.md +73 -0
- data/tracks/javascript/exercises/run-length-encoding/README.md +54 -0
- data/tracks/javascript/exercises/saddle-points/README.md +57 -0
- data/tracks/javascript/exercises/say/README.md +93 -0
- data/tracks/javascript/exercises/scrabble-score/README.md +68 -0
- data/tracks/javascript/exercises/secret-handshake/README.md +59 -0
- data/tracks/javascript/exercises/series/README.md +51 -0
- data/tracks/javascript/exercises/sieve/README.md +58 -0
- data/tracks/javascript/exercises/simple-cipher/README.md +114 -0
- data/tracks/javascript/exercises/simple-linked-list/README.md +52 -0
- data/tracks/javascript/exercises/space-age/README.md +48 -0
- data/tracks/javascript/exercises/strain/README.md +64 -0
- data/tracks/javascript/exercises/sum-of-multiples/README.md +42 -0
- data/tracks/javascript/exercises/triangle/README.md +50 -0
- data/tracks/javascript/exercises/trinary/README.md +52 -0
- data/tracks/javascript/exercises/two-bucket/README.md +60 -0
- data/tracks/javascript/exercises/word-count/README.md +43 -0
- data/tracks/javascript/exercises/wordy/README.md +87 -0
- data/tracks/lua/config/exercise_readme.go.tmpl +16 -0
- data/tracks/lua/exercises/acronym/README.md +25 -0
- data/tracks/lua/exercises/all-your-base/README.md +45 -0
- data/tracks/lua/exercises/allergies/README.md +47 -0
- data/tracks/lua/exercises/alphametics/README.md +45 -0
- data/tracks/lua/exercises/anagram/README.md +23 -0
- data/tracks/lua/exercises/atbash-cipher/README.md +44 -0
- data/tracks/lua/exercises/bank-account/README.md +40 -0
- data/tracks/lua/exercises/beer-song/README.md +337 -0
- data/tracks/lua/exercises/binary/README.md +45 -0
- data/tracks/lua/exercises/binary-search/README.md +51 -0
- data/tracks/lua/exercises/binary-search-tree/README.md +70 -0
- data/tracks/lua/exercises/bob/README.md +28 -0
- data/tracks/lua/exercises/bowling/README.md +63 -0
- data/tracks/lua/exercises/bracket-push/README.md +20 -0
- data/tracks/lua/exercises/change/README.md +33 -0
- data/tracks/lua/exercises/circular-buffer/README.md +60 -0
- data/tracks/lua/exercises/clock/README.md +23 -0
- data/tracks/lua/exercises/crypto-square/README.md +84 -0
- data/tracks/lua/exercises/custom-set/README.md +21 -0
- data/tracks/lua/exercises/diamond/README.md +69 -0
- data/tracks/lua/exercises/difference-of-squares/README.md +29 -0
- data/tracks/lua/exercises/etl/README.md +61 -0
- data/tracks/lua/exercises/flatten-array/README.md +28 -0
- data/tracks/lua/exercises/food-chain/README.md +80 -0
- data/tracks/lua/exercises/gigasecond/README.md +21 -0
- data/tracks/lua/exercises/grade-school/README.md +52 -0
- data/tracks/lua/exercises/grains/README.md +44 -0
- data/tracks/lua/exercises/hamming/README.md +52 -0
- data/tracks/lua/exercises/hello-world/README.md +31 -0
- data/tracks/lua/exercises/house/README.md +123 -0
- data/tracks/lua/exercises/isogram/README.md +29 -0
- data/tracks/lua/exercises/kindergarten-garden/README.md +76 -0
- data/tracks/lua/exercises/largest-series-product/README.md +30 -0
- data/tracks/lua/exercises/leap/README.md +43 -0
- data/tracks/lua/exercises/linked-list/README.md +44 -0
- data/tracks/lua/exercises/list-ops/README.md +20 -0
- data/tracks/lua/exercises/luhn/README.md +81 -0
- data/tracks/lua/exercises/matrix/README.md +55 -0
- data/tracks/lua/exercises/meetup/README.md +40 -0
- data/tracks/lua/exercises/minesweeper/README.md +40 -0
- data/tracks/lua/exercises/nth-prime/README.md +25 -0
- data/tracks/lua/exercises/nucleotide-count/README.md +43 -0
- data/tracks/lua/exercises/ocr-numbers/README.md +95 -0
- data/tracks/lua/exercises/octal/README.md +59 -0
- data/tracks/lua/exercises/pangram/README.md +25 -0
- data/tracks/lua/exercises/pascals-triangle/README.md +31 -0
- data/tracks/lua/exercises/perfect-numbers/README.md +34 -0
- data/tracks/lua/exercises/phone-number/README.md +44 -0
- data/tracks/lua/exercises/pig-latin/README.md +34 -0
- data/tracks/lua/exercises/pov/README.md +56 -0
- data/tracks/lua/exercises/prime-factors/README.md +46 -0
- data/tracks/lua/exercises/protein-translation/README.md +59 -0
- data/tracks/lua/exercises/pythagorean-triplet/README.md +34 -0
- data/tracks/lua/exercises/rail-fence-cipher/README.md +70 -0
- data/tracks/lua/exercises/raindrops/README.md +34 -0
- data/tracks/lua/exercises/rectangles/README.md +77 -0
- data/tracks/lua/exercises/rna-transcription/README.md +35 -0
- data/tracks/lua/exercises/robot-name/README.md +32 -0
- data/tracks/lua/exercises/robot-simulator/README.md +44 -0
- data/tracks/lua/exercises/roman-numerals/README.md +59 -0
- data/tracks/lua/exercises/run-length-encoding/README.md +40 -0
- data/tracks/lua/exercises/say/README.md +79 -0
- data/tracks/lua/exercises/scrabble-score/README.md +54 -0
- data/tracks/lua/exercises/secret-handshake/README.md +45 -0
- data/tracks/lua/exercises/series/README.md +37 -0
- data/tracks/lua/exercises/sieve/README.md +44 -0
- data/tracks/lua/exercises/space-age/README.md +34 -0
- data/tracks/lua/exercises/sublist/README.md +31 -0
- data/tracks/lua/exercises/sum-of-multiples/README.md +28 -0
- data/tracks/lua/exercises/tournament/README.md +78 -0
- data/tracks/lua/exercises/transpose/README.md +75 -0
- data/tracks/lua/exercises/triangle/README.md +36 -0
- data/tracks/lua/exercises/variable-length-quantity/README.md +49 -0
- data/tracks/lua/exercises/word-count/README.md +29 -0
- data/tracks/lua/exercises/word-search/README.md +40 -0
- data/tracks/mips/config/exercise_readme.go.tmpl +16 -0
- data/tracks/mips/exercises/atbash-cipher/README.md +34 -0
- data/tracks/mips/exercises/binary/README.md +35 -0
- data/tracks/mips/exercises/difference-of-squares/README.md +19 -0
- data/tracks/mips/exercises/hamming/README.md +42 -0
- data/tracks/mips/exercises/hexadecimal/README.md +14 -0
- data/tracks/mips/exercises/isogram/README.md +19 -0
- data/tracks/mips/exercises/leap/README.md +33 -0
- data/tracks/mips/exercises/nth-prime/README.md +15 -0
- data/tracks/mips/exercises/octal/README.md +49 -0
- data/tracks/mips/exercises/raindrops/README.md +24 -0
- data/tracks/mips/exercises/rna-transcription/README.md +25 -0
- data/tracks/mips/exercises/scrabble-score/README.md +44 -0
- data/tracks/mips/exercises/triangle/README.md +26 -0
- data/tracks/mips/exercises/trinary/README.md +28 -0
- data/tracks/purescript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/purescript/exercises/accumulate/README.md +35 -0
- data/tracks/purescript/exercises/acronym/README.md +15 -0
- data/tracks/purescript/exercises/all-your-base/README.md +35 -0
- data/tracks/purescript/exercises/allergies/README.md +37 -0
- data/tracks/purescript/exercises/atbash-cipher/README.md +34 -0
- data/tracks/purescript/exercises/binary-search/README.md +41 -0
- data/tracks/purescript/exercises/bob/README.md +18 -0
- data/tracks/purescript/exercises/bracket-push/README.md +10 -0
- data/tracks/purescript/exercises/crypto-square/README.md +74 -0
- data/tracks/purescript/exercises/diamond/README.md +59 -0
- data/tracks/purescript/exercises/difference-of-squares/README.md +19 -0
- data/tracks/purescript/exercises/etl/README.md +51 -0
- data/tracks/purescript/exercises/hamming/README.md +42 -0
- data/tracks/purescript/exercises/hello-world/README.md +21 -0
- data/tracks/purescript/exercises/isogram/README.md +19 -0
- data/tracks/purescript/exercises/largest-series-product/README.md +20 -0
- data/tracks/purescript/exercises/leap/README.md +33 -0
- data/tracks/purescript/exercises/meetup/README.md +30 -0
- data/tracks/purescript/exercises/pangram/README.md +15 -0
- data/tracks/purescript/exercises/pascals-triangle/README.md +21 -0
- data/tracks/purescript/exercises/raindrops/README.md +24 -0
- data/tracks/purescript/exercises/scrabble-score/README.md +44 -0
- data/tracks/purescript/exercises/triangle/README.md +26 -0
- data/tracks/purescript/exercises/word-count/README.md +19 -0
- data/tracks/r/config/exercise_readme.go.tmpl +16 -0
- data/tracks/r/exercises/anagram/README.md +23 -0
- data/tracks/r/exercises/beer-song/README.md +337 -0
- data/tracks/r/exercises/bob/README.md +28 -0
- data/tracks/r/exercises/difference-of-squares/README.md +29 -0
- data/tracks/r/exercises/grains/README.md +44 -0
- data/tracks/r/exercises/hamming/README.md +52 -0
- data/tracks/r/exercises/hello-world/README.md +31 -0
- data/tracks/r/exercises/isogram/README.md +29 -0
- data/tracks/r/exercises/largest-series-product/README.md +30 -0
- data/tracks/r/exercises/leap/README.md +43 -0
- data/tracks/r/exercises/luhn/README.md +81 -0
- data/tracks/r/exercises/pascals-triangle/README.md +31 -0
- data/tracks/r/exercises/perfect-numbers/README.md +34 -0
- data/tracks/r/exercises/phone-number/README.md +44 -0
- data/tracks/r/exercises/prime-factors/README.md +46 -0
- data/tracks/r/exercises/raindrops/README.md +34 -0
- data/tracks/r/exercises/rna-transcription/README.md +35 -0
- data/tracks/r/exercises/rotational-cipher/README.md +46 -0
- data/tracks/r/exercises/scrabble-score/README.md +54 -0
- data/tracks/r/exercises/secret-handshake/README.md +45 -0
- data/tracks/r/exercises/sieve/README.md +44 -0
- data/tracks/r/exercises/space-age/README.md +34 -0
- data/tracks/r/exercises/sum-of-multiples/README.md +28 -0
- data/tracks/r/exercises/tournament/README.md +78 -0
- data/tracks/r/exercises/word-count/README.md +29 -0
- data/tracks/rust/{docs/EXERCISE_README_INSERT.md → config/exercise-readme-insert.md} +1 -1
- data/tracks/rust/config/exercise_readme.go.tmpl +16 -0
- data/tracks/rust/exercises/acronym/README.md +47 -0
- data/tracks/rust/exercises/all-your-base/README.md +67 -0
- data/tracks/rust/exercises/allergies/README.md +69 -0
- data/tracks/rust/exercises/alphametics/README.md +67 -0
- data/tracks/rust/exercises/anagram/README.md +45 -0
- data/tracks/rust/exercises/atbash-cipher/README.md +66 -0
- data/tracks/rust/exercises/beer-song/README.md +359 -0
- data/tracks/rust/exercises/bob/README.md +50 -0
- data/tracks/rust/exercises/bowling/README.md +85 -0
- data/tracks/rust/exercises/bracket-push/README.md +50 -0
- data/tracks/rust/exercises/circular-buffer/README.md +82 -0
- data/tracks/rust/exercises/custom-set/README.md +43 -0
- data/tracks/rust/exercises/difference-of-squares/README.md +51 -0
- data/tracks/rust/exercises/dominoes/README.md +50 -0
- data/tracks/rust/exercises/etl/README.md +83 -0
- data/tracks/rust/exercises/forth/README.md +61 -0
- data/tracks/rust/exercises/gigasecond/Cargo.lock +3 -3
- data/tracks/rust/exercises/gigasecond/Cargo.toml +1 -1
- data/tracks/rust/exercises/gigasecond/README.md +43 -0
- data/tracks/rust/exercises/gigasecond/example.rs +1 -1
- data/tracks/rust/exercises/gigasecond/src/lib.rs +2 -2
- data/tracks/rust/exercises/gigasecond/tests/gigasecond.rs +10 -10
- data/tracks/rust/exercises/grade-school/README.md +74 -0
- data/tracks/rust/exercises/grains/README.md +66 -0
- data/tracks/rust/exercises/hamming/README.md +74 -0
- data/tracks/rust/exercises/hello-world/README.md +53 -0
- data/tracks/rust/exercises/hexadecimal/README.md +46 -0
- data/tracks/rust/exercises/largest-series-product/README.md +60 -0
- data/tracks/rust/exercises/leap/README.md +65 -0
- data/tracks/rust/exercises/luhn/README.md +103 -0
- data/tracks/rust/exercises/luhn-from/README.md +49 -0
- data/tracks/rust/exercises/luhn-trait/README.md +57 -0
- data/tracks/rust/exercises/minesweeper/README.md +62 -0
- data/tracks/rust/exercises/nucleotide-codons/README.md +54 -0
- data/tracks/rust/exercises/nucleotide-count/README.md +65 -0
- data/tracks/rust/exercises/ocr-numbers/README.md +117 -0
- data/tracks/rust/exercises/pangram/README.md +47 -0
- data/tracks/rust/exercises/parallel-letter-frequency/README.md +77 -0
- data/tracks/rust/exercises/pascals-triangle/README.md +53 -0
- data/tracks/rust/exercises/phone-number/README.md +66 -0
- data/tracks/rust/exercises/protein-translation/README.md +81 -0
- data/tracks/rust/exercises/queen-attack/README.md +65 -0
- data/tracks/rust/exercises/raindrops/README.md +56 -0
- data/tracks/rust/exercises/react/README.md +51 -0
- data/tracks/rust/exercises/rectangles/README.md +99 -0
- data/tracks/rust/exercises/rna-transcription/README.md +57 -0
- data/tracks/rust/exercises/robot-name/README.md +54 -0
- data/tracks/rust/exercises/robot-simulator/README.md +66 -0
- data/tracks/rust/exercises/roman-numerals/README.md +81 -0
- data/tracks/rust/exercises/rotational-cipher/README.md +68 -0
- data/tracks/rust/exercises/run-length-encoding/README.md +62 -0
- data/tracks/rust/exercises/scrabble-score/README.md +76 -0
- data/tracks/rust/exercises/sieve/README.md +66 -0
- data/tracks/rust/exercises/space-age/README.md +64 -0
- data/tracks/rust/exercises/sublist/README.md +53 -0
- data/tracks/rust/exercises/sum-of-multiples/README.md +50 -0
- data/tracks/rust/exercises/tournament/README.md +100 -0
- data/tracks/rust/exercises/triangle/README.md +71 -0
- data/tracks/rust/exercises/variable-length-quantity/README.md +71 -0
- data/tracks/rust/exercises/word-count/README.md +51 -0
- data/tracks/rust/exercises/wordy/README.md +95 -0
- data/tracks/vimscript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/vimscript/exercises/allergies/README.md +46 -0
- data/tracks/vimscript/exercises/anagram/README.md +22 -0
- data/tracks/vimscript/exercises/atbash-cipher/README.md +43 -0
- data/tracks/vimscript/exercises/beer-song/README.md +336 -0
- data/tracks/vimscript/exercises/bob/README.md +27 -0
- data/tracks/vimscript/exercises/difference-of-squares/README.md +28 -0
- data/tracks/vimscript/exercises/etl/README.md +60 -0
- data/tracks/vimscript/exercises/hamming/README.md +51 -0
- data/tracks/vimscript/exercises/hello-world/README.md +30 -0
- data/tracks/vimscript/exercises/largest-series-product/README.md +29 -0
- data/tracks/vimscript/exercises/leap/README.md +42 -0
- data/tracks/vimscript/exercises/nucleotide-count/README.md +42 -0
- data/tracks/vimscript/exercises/pangram/README.md +24 -0
- data/tracks/vimscript/exercises/phone-number/README.md +43 -0
- data/tracks/vimscript/exercises/raindrops/README.md +33 -0
- data/tracks/vimscript/exercises/rna-transcription/README.md +34 -0
- data/tracks/vimscript/exercises/roman-numerals/README.md +58 -0
- data/tracks/vimscript/exercises/scrabble-score/README.md +53 -0
- data/tracks/vimscript/exercises/triangle/README.md +35 -0
- data/tracks/vimscript/exercises/word-count/README.md +28 -0
- metadata +466 -86
- data/tracks/java/exercises/anagram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/atbash-cipher/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bank-account/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/beer-song/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary-search/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary-search-tree/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bob/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/book-store/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bowling/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bracket-push/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/change/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/circular-buffer/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/clock/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/collatz-conjecture/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/complex-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/crypto-square/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/custom-set/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/diamond/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/difference-of-squares/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/etl/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/flatten-array/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/food-chain/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/gigasecond/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/grade-school/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hamming/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hello-world/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hexadecimal/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/isogram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/kindergarten-garden/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/largest-series-product/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/linked-list/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/list-ops/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/luhn/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/matrix/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/meetup/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/minesweeper/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/nth-prime/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/nucleotide-count/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/ocr-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/octal/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/palindrome-products/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pangram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pascals-triangle/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/perfect-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/phone-number/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pig-latin/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/poker/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/prime-factors/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pythagorean-triplet/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/queen-attack/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/raindrops/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/rectangles/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/rna-transcription/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/robot-name/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/robot-simulator/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/roman-numerals/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/run-length-encoding/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/saddle-points/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/scrabble-score/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/secret-handshake/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/series/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sieve/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/simple-cipher/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/simple-linked-list/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/space-age/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/spiral-matrix/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/strain/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sublist/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sum-of-multiples/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/transpose/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/triangle/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/trinary/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/twelve-days/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/two-fer/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/word-count/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/word-search/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/wordy/.meta/readme.go.tmpl +0 -17
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Robot Name
|
|
2
|
+
|
|
3
|
+
Manage robot factory settings.
|
|
4
|
+
|
|
5
|
+
When robots come off the factory floor, they have no name.
|
|
6
|
+
|
|
7
|
+
The first time you boot them up, a random name is generated in the format
|
|
8
|
+
of two uppercase letters followed by three digits, such as RX837 or BC811.
|
|
9
|
+
|
|
10
|
+
Every once in a while we need to reset a robot to its factory settings,
|
|
11
|
+
which means that their name gets wiped. The next time you ask, it will
|
|
12
|
+
respond with a new random name.
|
|
13
|
+
|
|
14
|
+
The names must be random: they should not follow a predictable sequence.
|
|
15
|
+
Random names means a risk of collisions. Your solution must ensure that
|
|
16
|
+
every existing robot has a unique name.
|
|
17
|
+
|
|
18
|
+
## Hints
|
|
19
|
+
|
|
20
|
+
To complete this exercise, you need to create the data type `Robot`,
|
|
21
|
+
as a mutable variable, and implement the following functions:
|
|
22
|
+
|
|
23
|
+
- `mkRobot`
|
|
24
|
+
- `resetName`
|
|
25
|
+
- `robotName`
|
|
26
|
+
|
|
27
|
+
You will find a dummy data declaration and type signatures already in place,
|
|
28
|
+
but it is up to you to define the functions and create a meaningful data type,
|
|
29
|
+
newtype or type synonym.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## Getting Started
|
|
34
|
+
|
|
35
|
+
For installation and learning resources, refer to the
|
|
36
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
37
|
+
|
|
38
|
+
## Running the tests
|
|
39
|
+
|
|
40
|
+
To run the test suite, execute the following command:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
stack test
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
#### If you get an error message like this...
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
No .cabal file found in directory
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
You are probably running an old stack version and need
|
|
53
|
+
to upgrade it.
|
|
54
|
+
|
|
55
|
+
#### Otherwise, if you get an error message like this...
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
No compiler found, expected minor version match with...
|
|
59
|
+
Try running "stack setup" to install the correct GHC...
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Just do as it says and it will download and install
|
|
63
|
+
the correct compiler version:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
stack setup
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Running *GHCi*
|
|
70
|
+
|
|
71
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
stack ghci
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Feedback, Issues, Pull Requests
|
|
78
|
+
|
|
79
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
80
|
+
GitHub is the home for all of the Haskell exercises.
|
|
81
|
+
|
|
82
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
83
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
84
|
+
|
|
85
|
+
## Source
|
|
86
|
+
|
|
87
|
+
A debugging session with Paul Blackwell at gSchool. [http://gschool.it](http://gschool.it)
|
|
88
|
+
|
|
89
|
+
## Submitting Incomplete Solutions
|
|
90
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Robot Simulator
|
|
2
|
+
|
|
3
|
+
Write a robot simulator.
|
|
4
|
+
|
|
5
|
+
A robot factory's test facility needs a program to verify robot movements.
|
|
6
|
+
|
|
7
|
+
The robots have three possible movements:
|
|
8
|
+
|
|
9
|
+
- turn right
|
|
10
|
+
- turn left
|
|
11
|
+
- advance
|
|
12
|
+
|
|
13
|
+
Robots are placed on a hypothetical infinite grid, facing a particular
|
|
14
|
+
direction (north, east, south, or west) at a set of {x,y} coordinates,
|
|
15
|
+
e.g., {3,8}, with coordinates increasing to the north and east.
|
|
16
|
+
|
|
17
|
+
The robot then receives a number of instructions, at which point the
|
|
18
|
+
testing facility verifies the robot's new position, and in which
|
|
19
|
+
direction it is pointing.
|
|
20
|
+
|
|
21
|
+
- The letter-string "RAALAL" means:
|
|
22
|
+
- Turn right
|
|
23
|
+
- Advance twice
|
|
24
|
+
- Turn left
|
|
25
|
+
- Advance once
|
|
26
|
+
- Turn left yet again
|
|
27
|
+
- Say a robot starts at {7, 3} facing north. Then running this stream
|
|
28
|
+
of instructions should leave it at {9, 4} facing west.
|
|
29
|
+
|
|
30
|
+
## Hints
|
|
31
|
+
|
|
32
|
+
To complete this exercise, you need to create the data type `Robot`,
|
|
33
|
+
and implement the following functions:
|
|
34
|
+
|
|
35
|
+
- `bearing`
|
|
36
|
+
- `coordinates`
|
|
37
|
+
- `mkRobot`
|
|
38
|
+
- `simulate`
|
|
39
|
+
- `turnLeft`
|
|
40
|
+
- `turnRight`
|
|
41
|
+
|
|
42
|
+
You will find a dummy data declaration and type signatures already in place,
|
|
43
|
+
but it is up to you to define the functions and create a meaningful data type,
|
|
44
|
+
newtype or type synonym.
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
## Getting Started
|
|
49
|
+
|
|
50
|
+
For installation and learning resources, refer to the
|
|
51
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
52
|
+
|
|
53
|
+
## Running the tests
|
|
54
|
+
|
|
55
|
+
To run the test suite, execute the following command:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
stack test
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
#### If you get an error message like this...
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
No .cabal file found in directory
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
You are probably running an old stack version and need
|
|
68
|
+
to upgrade it.
|
|
69
|
+
|
|
70
|
+
#### Otherwise, if you get an error message like this...
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
No compiler found, expected minor version match with...
|
|
74
|
+
Try running "stack setup" to install the correct GHC...
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Just do as it says and it will download and install
|
|
78
|
+
the correct compiler version:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
stack setup
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Running *GHCi*
|
|
85
|
+
|
|
86
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
stack ghci
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Feedback, Issues, Pull Requests
|
|
93
|
+
|
|
94
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
95
|
+
GitHub is the home for all of the Haskell exercises.
|
|
96
|
+
|
|
97
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
98
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
99
|
+
|
|
100
|
+
## Source
|
|
101
|
+
|
|
102
|
+
Inspired by an interview question at a famous company.
|
|
103
|
+
|
|
104
|
+
## Submitting Incomplete Solutions
|
|
105
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Roman Numerals
|
|
2
|
+
|
|
3
|
+
Write a function to convert from normal numbers to Roman Numerals.
|
|
4
|
+
|
|
5
|
+
The Romans were a clever bunch. They conquered most of Europe and ruled
|
|
6
|
+
it for hundreds of years. They invented concrete and straight roads and
|
|
7
|
+
even bikinis. One thing they never discovered though was the number
|
|
8
|
+
zero. This made writing and dating extensive histories of their exploits
|
|
9
|
+
slightly more challenging, but the system of numbers they came up with
|
|
10
|
+
is still in use today. For example the BBC uses Roman numerals to date
|
|
11
|
+
their programmes.
|
|
12
|
+
|
|
13
|
+
The Romans wrote numbers using letters - I, V, X, L, C, D, M. (notice
|
|
14
|
+
these letters have lots of straight lines and are hence easy to hack
|
|
15
|
+
into stone tablets).
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
1 => I
|
|
19
|
+
10 => X
|
|
20
|
+
7 => VII
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
There is no need to be able to convert numbers larger than about 3000.
|
|
24
|
+
(The Romans themselves didn't tend to go any higher)
|
|
25
|
+
|
|
26
|
+
Wikipedia says: Modern Roman numerals ... are written by expressing each
|
|
27
|
+
digit separately starting with the left most digit and skipping any
|
|
28
|
+
digit with a value of zero.
|
|
29
|
+
|
|
30
|
+
To see this in practice, consider the example of 1990.
|
|
31
|
+
|
|
32
|
+
In Roman numerals 1990 is MCMXC:
|
|
33
|
+
|
|
34
|
+
1000=M
|
|
35
|
+
900=CM
|
|
36
|
+
90=XC
|
|
37
|
+
|
|
38
|
+
2008 is written as MMVIII:
|
|
39
|
+
|
|
40
|
+
2000=MM
|
|
41
|
+
8=VIII
|
|
42
|
+
|
|
43
|
+
See also: http://www.novaroma.org/via_romana/numbers.html
|
|
44
|
+
|
|
45
|
+
## Hints
|
|
46
|
+
|
|
47
|
+
To complete this exercise you need to implement the function `numerals`,
|
|
48
|
+
that *maybe* converts a number to a *string* representing a roman numeral.
|
|
49
|
+
|
|
50
|
+
Your function is expected to, at least, convert numbers up to 3000,
|
|
51
|
+
but is up to you to decide how far you want to go.
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
## Getting Started
|
|
56
|
+
|
|
57
|
+
For installation and learning resources, refer to the
|
|
58
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
59
|
+
|
|
60
|
+
## Running the tests
|
|
61
|
+
|
|
62
|
+
To run the test suite, execute the following command:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
stack test
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
#### If you get an error message like this...
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
No .cabal file found in directory
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
You are probably running an old stack version and need
|
|
75
|
+
to upgrade it.
|
|
76
|
+
|
|
77
|
+
#### Otherwise, if you get an error message like this...
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
No compiler found, expected minor version match with...
|
|
81
|
+
Try running "stack setup" to install the correct GHC...
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Just do as it says and it will download and install
|
|
85
|
+
the correct compiler version:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
stack setup
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Running *GHCi*
|
|
92
|
+
|
|
93
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
stack ghci
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Feedback, Issues, Pull Requests
|
|
100
|
+
|
|
101
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
102
|
+
GitHub is the home for all of the Haskell exercises.
|
|
103
|
+
|
|
104
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
105
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
106
|
+
|
|
107
|
+
## Source
|
|
108
|
+
|
|
109
|
+
The Roman Numeral Kata [http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals](http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals)
|
|
110
|
+
|
|
111
|
+
## Submitting Incomplete Solutions
|
|
112
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Run Length Encoding
|
|
2
|
+
|
|
3
|
+
Implement run-length encoding and decoding.
|
|
4
|
+
|
|
5
|
+
Run-length encoding (RLE) is a simple form of data compression, where runs
|
|
6
|
+
(consecutive data elements) are replaced by just one data value and count.
|
|
7
|
+
|
|
8
|
+
For example we can represent the original 53 characters with only 13.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" -> "12WB12W3B24WB"
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
RLE allows the original data to be perfectly reconstructed from
|
|
15
|
+
the compressed data, which makes it a lossless data compression.
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
"AABCCCDEEEE" -> "2AB3CD4E" -> "AABCCCDEEEE"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
For simplicity, you can assume that the unencoded string will only contain
|
|
22
|
+
the letters A through Z (either lower or upper case) and whitespace. This way
|
|
23
|
+
data to be encoded will never contain any numbers and numbers inside data to
|
|
24
|
+
be decoded always represent the count for the following character.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## Getting Started
|
|
28
|
+
|
|
29
|
+
For installation and learning resources, refer to the
|
|
30
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
31
|
+
|
|
32
|
+
## Running the tests
|
|
33
|
+
|
|
34
|
+
To run the test suite, execute the following command:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
stack test
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
#### If you get an error message like this...
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
No .cabal file found in directory
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
You are probably running an old stack version and need
|
|
47
|
+
to upgrade it.
|
|
48
|
+
|
|
49
|
+
#### Otherwise, if you get an error message like this...
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
No compiler found, expected minor version match with...
|
|
53
|
+
Try running "stack setup" to install the correct GHC...
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Just do as it says and it will download and install
|
|
57
|
+
the correct compiler version:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
stack setup
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Running *GHCi*
|
|
64
|
+
|
|
65
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
stack ghci
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Feedback, Issues, Pull Requests
|
|
72
|
+
|
|
73
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
74
|
+
GitHub is the home for all of the Haskell exercises.
|
|
75
|
+
|
|
76
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
77
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
78
|
+
|
|
79
|
+
## Source
|
|
80
|
+
|
|
81
|
+
Wikipedia [https://en.wikipedia.org/wiki/Run-length_encoding](https://en.wikipedia.org/wiki/Run-length_encoding)
|
|
82
|
+
|
|
83
|
+
## Submitting Incomplete Solutions
|
|
84
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Saddle Points
|
|
2
|
+
|
|
3
|
+
Detect saddle points in a matrix.
|
|
4
|
+
|
|
5
|
+
So say you have a matrix like so:
|
|
6
|
+
|
|
7
|
+
```plain
|
|
8
|
+
0 1 2
|
|
9
|
+
|---------
|
|
10
|
+
0 | 9 8 7
|
|
11
|
+
1 | 5 3 2 <--- saddle point at (1,0)
|
|
12
|
+
2 | 6 6 7
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
It has a saddle point at (1, 0).
|
|
16
|
+
|
|
17
|
+
It's called a "saddle point" because it is greater than or equal to
|
|
18
|
+
every element in its row and the less than or equal to every element in
|
|
19
|
+
its column.
|
|
20
|
+
|
|
21
|
+
A matrix may have zero or more saddle points.
|
|
22
|
+
|
|
23
|
+
Your code should be able to provide the (possibly empty) list of all the
|
|
24
|
+
saddle points for any given matrix.
|
|
25
|
+
|
|
26
|
+
Note that you may find other definitions of matrix saddle points online,
|
|
27
|
+
but the tests for this exercise follow the above unambiguous definition.
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## Getting Started
|
|
31
|
+
|
|
32
|
+
For installation and learning resources, refer to the
|
|
33
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
34
|
+
|
|
35
|
+
## Running the tests
|
|
36
|
+
|
|
37
|
+
To run the test suite, execute the following command:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
stack test
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
#### If you get an error message like this...
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
No .cabal file found in directory
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
You are probably running an old stack version and need
|
|
50
|
+
to upgrade it.
|
|
51
|
+
|
|
52
|
+
#### Otherwise, if you get an error message like this...
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
No compiler found, expected minor version match with...
|
|
56
|
+
Try running "stack setup" to install the correct GHC...
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Just do as it says and it will download and install
|
|
60
|
+
the correct compiler version:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
stack setup
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Running *GHCi*
|
|
67
|
+
|
|
68
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
stack ghci
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Feedback, Issues, Pull Requests
|
|
75
|
+
|
|
76
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
77
|
+
GitHub is the home for all of the Haskell exercises.
|
|
78
|
+
|
|
79
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
80
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
81
|
+
|
|
82
|
+
## Source
|
|
83
|
+
|
|
84
|
+
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)
|
|
85
|
+
|
|
86
|
+
## Submitting Incomplete Solutions
|
|
87
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Say
|
|
2
|
+
|
|
3
|
+
Given a number from 0 to 999,999,999,999, spell out that number in English.
|
|
4
|
+
|
|
5
|
+
## Step 1
|
|
6
|
+
|
|
7
|
+
Handle the basic case of 0 through 99.
|
|
8
|
+
|
|
9
|
+
If the input to the program is `22`, then the output should be
|
|
10
|
+
`'twenty-two'`.
|
|
11
|
+
|
|
12
|
+
Your program should complain loudly if given a number outside the
|
|
13
|
+
blessed range.
|
|
14
|
+
|
|
15
|
+
Some good test cases for this program are:
|
|
16
|
+
|
|
17
|
+
- 0
|
|
18
|
+
- 14
|
|
19
|
+
- 50
|
|
20
|
+
- 98
|
|
21
|
+
- -1
|
|
22
|
+
- 100
|
|
23
|
+
|
|
24
|
+
### Extension
|
|
25
|
+
|
|
26
|
+
If you're on a Mac, shell out to Mac OS X's `say` program to talk out
|
|
27
|
+
loud.
|
|
28
|
+
|
|
29
|
+
## Step 2
|
|
30
|
+
|
|
31
|
+
Implement breaking a number up into chunks of thousands.
|
|
32
|
+
|
|
33
|
+
So `1234567890` should yield a list like 1, 234, 567, and 890, while the
|
|
34
|
+
far simpler `1000` should yield just 1 and 0.
|
|
35
|
+
|
|
36
|
+
The program must also report any values that are out of range.
|
|
37
|
+
|
|
38
|
+
## Step 3
|
|
39
|
+
|
|
40
|
+
Now handle inserting the appropriate scale word between those chunks.
|
|
41
|
+
|
|
42
|
+
So `1234567890` should yield `'1 billion 234 million 567 thousand 890'`
|
|
43
|
+
|
|
44
|
+
The program must also report any values that are out of range. It's
|
|
45
|
+
fine to stop at "trillion".
|
|
46
|
+
|
|
47
|
+
## Step 4
|
|
48
|
+
|
|
49
|
+
Put it all together to get nothing but plain English.
|
|
50
|
+
|
|
51
|
+
`12345` should give `twelve thousand three hundred forty-five`.
|
|
52
|
+
|
|
53
|
+
The program must also report any values that are out of range.
|
|
54
|
+
|
|
55
|
+
### Extensions
|
|
56
|
+
|
|
57
|
+
Use _and_ (correctly) when spelling out the number in English:
|
|
58
|
+
|
|
59
|
+
- 14 becomes "fourteen".
|
|
60
|
+
- 100 becomes "one hundred".
|
|
61
|
+
- 120 becomes "one hundred and twenty".
|
|
62
|
+
- 1002 becomes "one thousand and two".
|
|
63
|
+
- 1323 becomes "one thousand three hundred and twenty-three".
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## Getting Started
|
|
67
|
+
|
|
68
|
+
For installation and learning resources, refer to the
|
|
69
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
70
|
+
|
|
71
|
+
## Running the tests
|
|
72
|
+
|
|
73
|
+
To run the test suite, execute the following command:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
stack test
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### If you get an error message like this...
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
No .cabal file found in directory
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
You are probably running an old stack version and need
|
|
86
|
+
to upgrade it.
|
|
87
|
+
|
|
88
|
+
#### Otherwise, if you get an error message like this...
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
No compiler found, expected minor version match with...
|
|
92
|
+
Try running "stack setup" to install the correct GHC...
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Just do as it says and it will download and install
|
|
96
|
+
the correct compiler version:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
stack setup
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Running *GHCi*
|
|
103
|
+
|
|
104
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
stack ghci
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Feedback, Issues, Pull Requests
|
|
111
|
+
|
|
112
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
113
|
+
GitHub is the home for all of the Haskell exercises.
|
|
114
|
+
|
|
115
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
116
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
117
|
+
|
|
118
|
+
## Source
|
|
119
|
+
|
|
120
|
+
A variation on JavaRanch CattleDrive, exercise 4a [http://www.javaranch.com/say.jsp](http://www.javaranch.com/say.jsp)
|
|
121
|
+
|
|
122
|
+
## Submitting Incomplete Solutions
|
|
123
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Scrabble Score
|
|
2
|
+
|
|
3
|
+
Given a word, compute the scrabble score for that word.
|
|
4
|
+
|
|
5
|
+
## Letter Values
|
|
6
|
+
|
|
7
|
+
You'll need these:
|
|
8
|
+
|
|
9
|
+
```plain
|
|
10
|
+
Letter Value
|
|
11
|
+
A, E, I, O, U, L, N, R, S, T 1
|
|
12
|
+
D, G 2
|
|
13
|
+
B, C, M, P 3
|
|
14
|
+
F, H, V, W, Y 4
|
|
15
|
+
K 5
|
|
16
|
+
J, X 8
|
|
17
|
+
Q, Z 10
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
"cabbage" should be scored as worth 14 points:
|
|
22
|
+
|
|
23
|
+
- 3 points for C
|
|
24
|
+
- 1 point for A, twice
|
|
25
|
+
- 3 points for B, twice
|
|
26
|
+
- 2 points for G
|
|
27
|
+
- 1 point for E
|
|
28
|
+
|
|
29
|
+
And to total:
|
|
30
|
+
|
|
31
|
+
- `3 + 2*1 + 2*3 + 2 + 1`
|
|
32
|
+
- = `3 + 2 + 6 + 3`
|
|
33
|
+
- = `5 + 9`
|
|
34
|
+
- = 14
|
|
35
|
+
|
|
36
|
+
## Extensions
|
|
37
|
+
- You can play a double or a triple letter.
|
|
38
|
+
- You can play a double or a triple word.
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Getting Started
|
|
42
|
+
|
|
43
|
+
For installation and learning resources, refer to the
|
|
44
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
45
|
+
|
|
46
|
+
## Running the tests
|
|
47
|
+
|
|
48
|
+
To run the test suite, execute the following command:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
stack test
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### If you get an error message like this...
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
No .cabal file found in directory
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
You are probably running an old stack version and need
|
|
61
|
+
to upgrade it.
|
|
62
|
+
|
|
63
|
+
#### Otherwise, if you get an error message like this...
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
No compiler found, expected minor version match with...
|
|
67
|
+
Try running "stack setup" to install the correct GHC...
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Just do as it says and it will download and install
|
|
71
|
+
the correct compiler version:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
stack setup
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Running *GHCi*
|
|
78
|
+
|
|
79
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
stack ghci
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Feedback, Issues, Pull Requests
|
|
86
|
+
|
|
87
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
88
|
+
GitHub is the home for all of the Haskell exercises.
|
|
89
|
+
|
|
90
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
91
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
92
|
+
|
|
93
|
+
## Source
|
|
94
|
+
|
|
95
|
+
Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
|
|
96
|
+
|
|
97
|
+
## Submitting Incomplete Solutions
|
|
98
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|