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,128 @@
|
|
|
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
|
+
|
|
71
|
+
## Getting Started
|
|
72
|
+
|
|
73
|
+
For installation and learning resources, refer to the
|
|
74
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
75
|
+
|
|
76
|
+
## Running the tests
|
|
77
|
+
|
|
78
|
+
To run the test suite, execute the following command:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
stack test
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
#### If you get an error message like this...
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
No .cabal file found in directory
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
You are probably running an old stack version and need
|
|
91
|
+
to upgrade it.
|
|
92
|
+
|
|
93
|
+
#### Otherwise, if you get an error message like this...
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
No compiler found, expected minor version match with...
|
|
97
|
+
Try running "stack setup" to install the correct GHC...
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Just do as it says and it will download and install
|
|
101
|
+
the correct compiler version:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
stack setup
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Running *GHCi*
|
|
108
|
+
|
|
109
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
stack ghci
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Feedback, Issues, Pull Requests
|
|
116
|
+
|
|
117
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
118
|
+
GitHub is the home for all of the Haskell exercises.
|
|
119
|
+
|
|
120
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
121
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
122
|
+
|
|
123
|
+
## Source
|
|
124
|
+
|
|
125
|
+
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)
|
|
126
|
+
|
|
127
|
+
## Submitting Incomplete Solutions
|
|
128
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,94 @@
|
|
|
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
|
+
|
|
12
|
+
To complete this exercise, you need to create the data type `CustomSet`,
|
|
13
|
+
with `Eq` and `Show` instances, and implement the following functions:
|
|
14
|
+
|
|
15
|
+
- `delete`
|
|
16
|
+
- `difference`
|
|
17
|
+
- `empty`
|
|
18
|
+
- `fromList`
|
|
19
|
+
- `insert`
|
|
20
|
+
- `intersection`
|
|
21
|
+
- `isDisjointFrom`
|
|
22
|
+
- `isSubsetOf`
|
|
23
|
+
- `member`
|
|
24
|
+
- `null`
|
|
25
|
+
- `size`
|
|
26
|
+
- `toList`
|
|
27
|
+
- `union`
|
|
28
|
+
|
|
29
|
+
You will find a dummy data declaration and type signatures already in place,
|
|
30
|
+
but it is up to you to define the functions and create a meaningful data type,
|
|
31
|
+
newtype or type synonym.
|
|
32
|
+
|
|
33
|
+
If you're interested in writing an efficient implementation but don't quite
|
|
34
|
+
know where to start, the best primer I know of is Chris Okasaki's
|
|
35
|
+
"Purely Functional Data Structures", which you can read a version of here:
|
|
36
|
+
https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## Getting Started
|
|
41
|
+
|
|
42
|
+
For installation and learning resources, refer to the
|
|
43
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
44
|
+
|
|
45
|
+
## Running the tests
|
|
46
|
+
|
|
47
|
+
To run the test suite, execute the following command:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
stack test
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
#### If you get an error message like this...
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
No .cabal file found in directory
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
You are probably running an old stack version and need
|
|
60
|
+
to upgrade it.
|
|
61
|
+
|
|
62
|
+
#### Otherwise, if you get an error message like this...
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
No compiler found, expected minor version match with...
|
|
66
|
+
Try running "stack setup" to install the correct GHC...
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Just do as it says and it will download and install
|
|
70
|
+
the correct compiler version:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
stack setup
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Running *GHCi*
|
|
77
|
+
|
|
78
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
stack ghci
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Feedback, Issues, Pull Requests
|
|
85
|
+
|
|
86
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
87
|
+
GitHub is the home for all of the Haskell exercises.
|
|
88
|
+
|
|
89
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
90
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
## Submitting Incomplete Solutions
|
|
94
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,73 @@
|
|
|
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
|
+
|
|
16
|
+
## Getting Started
|
|
17
|
+
|
|
18
|
+
For installation and learning resources, refer to the
|
|
19
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
20
|
+
|
|
21
|
+
## Running the tests
|
|
22
|
+
|
|
23
|
+
To run the test suite, execute the following command:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
stack test
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
#### If you get an error message like this...
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
No .cabal file found in directory
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
You are probably running an old stack version and need
|
|
36
|
+
to upgrade it.
|
|
37
|
+
|
|
38
|
+
#### Otherwise, if you get an error message like this...
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
No compiler found, expected minor version match with...
|
|
42
|
+
Try running "stack setup" to install the correct GHC...
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Just do as it says and it will download and install
|
|
46
|
+
the correct compiler version:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
stack setup
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Running *GHCi*
|
|
53
|
+
|
|
54
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
stack ghci
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Feedback, Issues, Pull Requests
|
|
61
|
+
|
|
62
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
63
|
+
GitHub is the home for all of the Haskell exercises.
|
|
64
|
+
|
|
65
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
66
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
67
|
+
|
|
68
|
+
## Source
|
|
69
|
+
|
|
70
|
+
Problem 6 at Project Euler [http://projecteuler.net/problem=6](http://projecteuler.net/problem=6)
|
|
71
|
+
|
|
72
|
+
## Submitting Incomplete Solutions
|
|
73
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,72 @@
|
|
|
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
|
+
|
|
18
|
+
## Getting Started
|
|
19
|
+
|
|
20
|
+
For installation and learning resources, refer to the
|
|
21
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
22
|
+
|
|
23
|
+
## Running the tests
|
|
24
|
+
|
|
25
|
+
To run the test suite, execute the following command:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
stack test
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
#### If you get an error message like this...
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
No .cabal file found in directory
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
You are probably running an old stack version and need
|
|
38
|
+
to upgrade it.
|
|
39
|
+
|
|
40
|
+
#### Otherwise, if you get an error message like this...
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
No compiler found, expected minor version match with...
|
|
44
|
+
Try running "stack setup" to install the correct GHC...
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Just do as it says and it will download and install
|
|
48
|
+
the correct compiler version:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
stack setup
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Running *GHCi*
|
|
55
|
+
|
|
56
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
stack ghci
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Feedback, Issues, Pull Requests
|
|
63
|
+
|
|
64
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
65
|
+
GitHub is the home for all of the Haskell exercises.
|
|
66
|
+
|
|
67
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
68
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
## Submitting Incomplete Solutions
|
|
72
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,105 @@
|
|
|
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
|
+
|
|
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
|
+
The Jumpstart Lab team [http://jumpstartlab.com](http://jumpstartlab.com)
|
|
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,145 @@
|
|
|
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
|
+
|
|
68
|
+
This exercise is about [code refactoring](https://en.wikipedia.org/wiki/Refactoring),
|
|
69
|
+
so we are providing you with a solution that already passes the tests.
|
|
70
|
+
|
|
71
|
+
The challenge is to rewrite it until you are proud of it, and learn
|
|
72
|
+
something in the process.
|
|
73
|
+
|
|
74
|
+
If you don't know where to start, here are some ideas:
|
|
75
|
+
|
|
76
|
+
- Try to reduce repetition to a minimum.
|
|
77
|
+
- Try to make the code readable.
|
|
78
|
+
- Generalize your solution, allowing the lady to swallow other things.
|
|
79
|
+
|
|
80
|
+
Take your time.
|
|
81
|
+
|
|
82
|
+
Change one thing at a time and check if your solution still passes the tests.
|
|
83
|
+
|
|
84
|
+
Have fun!
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
## Getting Started
|
|
89
|
+
|
|
90
|
+
For installation and learning resources, refer to the
|
|
91
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
92
|
+
|
|
93
|
+
## Running the tests
|
|
94
|
+
|
|
95
|
+
To run the test suite, execute the following command:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
stack test
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
#### If you get an error message like this...
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
No .cabal file found in directory
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
You are probably running an old stack version and need
|
|
108
|
+
to upgrade it.
|
|
109
|
+
|
|
110
|
+
#### Otherwise, if you get an error message like this...
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
No compiler found, expected minor version match with...
|
|
114
|
+
Try running "stack setup" to install the correct GHC...
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Just do as it says and it will download and install
|
|
118
|
+
the correct compiler version:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
stack setup
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Running *GHCi*
|
|
125
|
+
|
|
126
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
stack ghci
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Feedback, Issues, Pull Requests
|
|
133
|
+
|
|
134
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
135
|
+
GitHub is the home for all of the Haskell exercises.
|
|
136
|
+
|
|
137
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
138
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
139
|
+
|
|
140
|
+
## Source
|
|
141
|
+
|
|
142
|
+
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)
|
|
143
|
+
|
|
144
|
+
## Submitting Incomplete Solutions
|
|
145
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|