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,94 @@
|
|
|
1
|
+
# Space Age
|
|
2
|
+
|
|
3
|
+
Given an age in seconds, calculate how old someone would be on:
|
|
4
|
+
|
|
5
|
+
- Earth: orbital period 365.25 Earth days, or 31557600 seconds
|
|
6
|
+
- Mercury: orbital period 0.2408467 Earth years
|
|
7
|
+
- Venus: orbital period 0.61519726 Earth years
|
|
8
|
+
- Mars: orbital period 1.8808158 Earth years
|
|
9
|
+
- Jupiter: orbital period 11.862615 Earth years
|
|
10
|
+
- Saturn: orbital period 29.447498 Earth years
|
|
11
|
+
- Uranus: orbital period 84.016846 Earth years
|
|
12
|
+
- Neptune: orbital period 164.79132 Earth years
|
|
13
|
+
|
|
14
|
+
So if you were told someone were 1,000,000,000 seconds old, you should
|
|
15
|
+
be able to say that they're 31 Earth-years old.
|
|
16
|
+
|
|
17
|
+
If you're wondering why Pluto didn't make the cut, go watch [this
|
|
18
|
+
youtube video](http://www.youtube.com/watch?v=Z_2gbGXzFbs).
|
|
19
|
+
|
|
20
|
+
## Hints
|
|
21
|
+
|
|
22
|
+
In this exercise, we provided the definition of the
|
|
23
|
+
[algebric data type](http://learnyouahaskell.com/making-our-own-types-and-typeclasses)
|
|
24
|
+
named `Planet`.
|
|
25
|
+
You need to implement the `ageOn` function, that calculates how many
|
|
26
|
+
years old someone would be on a `Planet`, given an age in seconds.
|
|
27
|
+
|
|
28
|
+
Your can use the provided signature if you are unsure about the types, but
|
|
29
|
+
don't let it restrict your creativity:
|
|
30
|
+
|
|
31
|
+
```haskell
|
|
32
|
+
ageOn :: Planet -> Float -> Float
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## Getting Started
|
|
38
|
+
|
|
39
|
+
For installation and learning resources, refer to the
|
|
40
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
41
|
+
|
|
42
|
+
## Running the tests
|
|
43
|
+
|
|
44
|
+
To run the test suite, execute the following command:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
stack test
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
#### If you get an error message like this...
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
No .cabal file found in directory
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
You are probably running an old stack version and need
|
|
57
|
+
to upgrade it.
|
|
58
|
+
|
|
59
|
+
#### Otherwise, if you get an error message like this...
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
No compiler found, expected minor version match with...
|
|
63
|
+
Try running "stack setup" to install the correct GHC...
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Just do as it says and it will download and install
|
|
67
|
+
the correct compiler version:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
stack setup
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Running *GHCi*
|
|
74
|
+
|
|
75
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
stack ghci
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Feedback, Issues, Pull Requests
|
|
82
|
+
|
|
83
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
84
|
+
GitHub is the home for all of the Haskell exercises.
|
|
85
|
+
|
|
86
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
87
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
88
|
+
|
|
89
|
+
## Source
|
|
90
|
+
|
|
91
|
+
Partially inspired by Chapter 1 in Chris Pine's online Learn to Program tutorial. [http://pine.fm/LearnToProgram/?Chapter=01](http://pine.fm/LearnToProgram/?Chapter=01)
|
|
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,84 @@
|
|
|
1
|
+
# Spiral Matrix
|
|
2
|
+
|
|
3
|
+
Given the size, return a square matrix of numbers in spiral order.
|
|
4
|
+
|
|
5
|
+
The matrix should be filled with natural numbers, starting from 1
|
|
6
|
+
in the top-left corner, increasing in an inward, clockwise spiral order,
|
|
7
|
+
like these examples:
|
|
8
|
+
|
|
9
|
+
###### Spiral matrix of size 3
|
|
10
|
+
|
|
11
|
+
```plain
|
|
12
|
+
1 2 3
|
|
13
|
+
8 9 4
|
|
14
|
+
7 6 5
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
###### Spiral matrix of size 4
|
|
18
|
+
|
|
19
|
+
```plain
|
|
20
|
+
1 2 3 4
|
|
21
|
+
12 13 14 5
|
|
22
|
+
11 16 15 6
|
|
23
|
+
10 9 8 7
|
|
24
|
+
```
|
|
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
|
+
Reddit r/dailyprogrammer challenge #320 [Easy] Spiral Ascension. [https://www.reddit.com/r/dailyprogrammer/comments/6i60lr/20170619_challenge_320_easy_spiral_ascension/](https://www.reddit.com/r/dailyprogrammer/comments/6i60lr/20170619_challenge_320_easy_spiral_ascension/)
|
|
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,94 @@
|
|
|
1
|
+
# Strain
|
|
2
|
+
|
|
3
|
+
Implement the `keep` and `discard` operation on collections. Given a collection
|
|
4
|
+
and a predicate on the collection's elements, `keep` returns a new collection
|
|
5
|
+
containing those elements where the predicate is true, while `discard` returns
|
|
6
|
+
a new collection containing those elements where the predicate is false.
|
|
7
|
+
|
|
8
|
+
For example, given the collection of numbers:
|
|
9
|
+
|
|
10
|
+
- 1, 2, 3, 4, 5
|
|
11
|
+
|
|
12
|
+
And the predicate:
|
|
13
|
+
|
|
14
|
+
- is the number even?
|
|
15
|
+
|
|
16
|
+
Then your keep operation should produce:
|
|
17
|
+
|
|
18
|
+
- 2, 4
|
|
19
|
+
|
|
20
|
+
While your discard operation should produce:
|
|
21
|
+
|
|
22
|
+
- 1, 3, 5
|
|
23
|
+
|
|
24
|
+
Note that the union of keep and discard is all the elements.
|
|
25
|
+
|
|
26
|
+
The functions may be called `keep` and `discard`, or they may need different
|
|
27
|
+
names in order to not clash with existing functions or concepts in your
|
|
28
|
+
language.
|
|
29
|
+
|
|
30
|
+
## Restrictions
|
|
31
|
+
|
|
32
|
+
Keep your hands off that filter/reject/whatchamacallit functionality
|
|
33
|
+
provided by your standard library! Solve this one yourself using other
|
|
34
|
+
basic tools instead.
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## Getting Started
|
|
38
|
+
|
|
39
|
+
For installation and learning resources, refer to the
|
|
40
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
41
|
+
|
|
42
|
+
## Running the tests
|
|
43
|
+
|
|
44
|
+
To run the test suite, execute the following command:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
stack test
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
#### If you get an error message like this...
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
No .cabal file found in directory
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
You are probably running an old stack version and need
|
|
57
|
+
to upgrade it.
|
|
58
|
+
|
|
59
|
+
#### Otherwise, if you get an error message like this...
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
No compiler found, expected minor version match with...
|
|
63
|
+
Try running "stack setup" to install the correct GHC...
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Just do as it says and it will download and install
|
|
67
|
+
the correct compiler version:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
stack setup
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Running *GHCi*
|
|
74
|
+
|
|
75
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
stack ghci
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Feedback, Issues, Pull Requests
|
|
82
|
+
|
|
83
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
84
|
+
GitHub is the home for all of the Haskell exercises.
|
|
85
|
+
|
|
86
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
87
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
88
|
+
|
|
89
|
+
## Source
|
|
90
|
+
|
|
91
|
+
Conversation with James Edward Gray II [https://twitter.com/jeg2](https://twitter.com/jeg2)
|
|
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,80 @@
|
|
|
1
|
+
# Sublist
|
|
2
|
+
|
|
3
|
+
Given two lists determine if the first list is contained within the second
|
|
4
|
+
list, if the second list is contained within the first list, if both lists are
|
|
5
|
+
contained within each other or if none of these are true.
|
|
6
|
+
|
|
7
|
+
Specifically, a list A is a sublist of list B if by dropping 0 or more elements
|
|
8
|
+
from the front of B and 0 or more elements from the back of B you get a list
|
|
9
|
+
that's completely equal to A.
|
|
10
|
+
|
|
11
|
+
Examples:
|
|
12
|
+
|
|
13
|
+
* A = [1, 2, 3], B = [1, 2, 3, 4, 5], A is a sublist of B
|
|
14
|
+
* A = [3, 4, 5], B = [1, 2, 3, 4, 5], A is a sublist of B
|
|
15
|
+
* A = [3, 4], B = [1, 2, 3, 4, 5], A is a sublist of B
|
|
16
|
+
* A = [1, 2, 3], B = [1, 2, 3], A is equal to B
|
|
17
|
+
* A = [1, 2, 3, 4, 5], B = [2, 3, 4], A is a superlist of B
|
|
18
|
+
* A = [1, 2, 4], B = [1, 2, 3, 4, 5], A is not a superlist of, sublist of or equal to B
|
|
19
|
+
|
|
20
|
+
## Hints
|
|
21
|
+
|
|
22
|
+
To complete this exercise, you need to implement the `sublist` function.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## Getting Started
|
|
27
|
+
|
|
28
|
+
For installation and learning resources, refer to the
|
|
29
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
30
|
+
|
|
31
|
+
## Running the tests
|
|
32
|
+
|
|
33
|
+
To run the test suite, execute the following command:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
stack test
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
#### If you get an error message like this...
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
No .cabal file found in directory
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
You are probably running an old stack version and need
|
|
46
|
+
to upgrade it.
|
|
47
|
+
|
|
48
|
+
#### Otherwise, if you get an error message like this...
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
No compiler found, expected minor version match with...
|
|
52
|
+
Try running "stack setup" to install the correct GHC...
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Just do as it says and it will download and install
|
|
56
|
+
the correct compiler version:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
stack setup
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Running *GHCi*
|
|
63
|
+
|
|
64
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
stack ghci
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Feedback, Issues, Pull Requests
|
|
71
|
+
|
|
72
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
73
|
+
GitHub is the home for all of the Haskell exercises.
|
|
74
|
+
|
|
75
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
76
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
## Submitting Incomplete Solutions
|
|
80
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Sum Of Multiples
|
|
2
|
+
|
|
3
|
+
Given a number, find the sum of all the multiples of particular numbers up to
|
|
4
|
+
but not including that number.
|
|
5
|
+
|
|
6
|
+
If we list all the natural numbers up to but not including 20 that are
|
|
7
|
+
multiples of either 3 or 5, we get 3, 5, 6 and 9, 10, 12, 15, and 18.
|
|
8
|
+
|
|
9
|
+
The sum of these multiples is 78.
|
|
10
|
+
|
|
11
|
+
Given a number, find the sum of the multiples of a given set of numbers,
|
|
12
|
+
up to but not including that number.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## Getting Started
|
|
16
|
+
|
|
17
|
+
For installation and learning resources, refer to the
|
|
18
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
19
|
+
|
|
20
|
+
## Running the tests
|
|
21
|
+
|
|
22
|
+
To run the test suite, execute the following command:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
stack test
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
#### If you get an error message like this...
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
No .cabal file found in directory
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
You are probably running an old stack version and need
|
|
35
|
+
to upgrade it.
|
|
36
|
+
|
|
37
|
+
#### Otherwise, if you get an error message like this...
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
No compiler found, expected minor version match with...
|
|
41
|
+
Try running "stack setup" to install the correct GHC...
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Just do as it says and it will download and install
|
|
45
|
+
the correct compiler version:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
stack setup
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Running *GHCi*
|
|
52
|
+
|
|
53
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
stack ghci
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Feedback, Issues, Pull Requests
|
|
60
|
+
|
|
61
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
62
|
+
GitHub is the home for all of the Haskell exercises.
|
|
63
|
+
|
|
64
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
65
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
66
|
+
|
|
67
|
+
## Source
|
|
68
|
+
|
|
69
|
+
A variation on Problem 1 at Project Euler [http://projecteuler.net/problem=1](http://projecteuler.net/problem=1)
|
|
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,80 @@
|
|
|
1
|
+
# Triangle
|
|
2
|
+
|
|
3
|
+
Determine if a triangle is equilateral, isosceles, or scalene.
|
|
4
|
+
|
|
5
|
+
An _equilateral_ triangle has all three sides the same length.<br/>
|
|
6
|
+
An _isosceles_ triangle has at least two sides the same length. (It is sometimes
|
|
7
|
+
specified as having exactly two sides the same length, but for the purposes of
|
|
8
|
+
this exercise we'll say at least two.)<br/>
|
|
9
|
+
A _scalene_ triangle has all sides of different lengths.
|
|
10
|
+
|
|
11
|
+
## Note
|
|
12
|
+
|
|
13
|
+
For a shape to be a triangle at all, all sides have to be of length > 0, and
|
|
14
|
+
the sum of the lengths of any two sides must be greater than or equal to the
|
|
15
|
+
length of the third side. See [Triangle Inequality](https://en.wikipedia.org/wiki/Triangle_inequality).
|
|
16
|
+
|
|
17
|
+
## Dig Deeper
|
|
18
|
+
|
|
19
|
+
The case where the sum of the lengths of two sides _equals_ that of the
|
|
20
|
+
third is known as a _degenerate_ triangle - it has zero area and looks like
|
|
21
|
+
a single line. Feel free to add your own code/tests to check for degenerate triangles.
|
|
22
|
+
|
|
23
|
+
## Getting Started
|
|
24
|
+
|
|
25
|
+
For installation and learning resources, refer to the
|
|
26
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
27
|
+
|
|
28
|
+
## Running the tests
|
|
29
|
+
|
|
30
|
+
To run the test suite, execute the following command:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
stack test
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
#### If you get an error message like this...
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
No .cabal file found in directory
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
You are probably running an old stack version and need
|
|
43
|
+
to upgrade it.
|
|
44
|
+
|
|
45
|
+
#### Otherwise, if you get an error message like this...
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
No compiler found, expected minor version match with...
|
|
49
|
+
Try running "stack setup" to install the correct GHC...
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Just do as it says and it will download and install
|
|
53
|
+
the correct compiler version:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
stack setup
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Running *GHCi*
|
|
60
|
+
|
|
61
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
stack ghci
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Feedback, Issues, Pull Requests
|
|
68
|
+
|
|
69
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
70
|
+
GitHub is the home for all of the Haskell exercises.
|
|
71
|
+
|
|
72
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
73
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
74
|
+
|
|
75
|
+
## Source
|
|
76
|
+
|
|
77
|
+
The Ruby Koans triangle project, parts 1 & 2 [http://rubykoans.com](http://rubykoans.com)
|
|
78
|
+
|
|
79
|
+
## Submitting Incomplete Solutions
|
|
80
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Trinary
|
|
2
|
+
|
|
3
|
+
Convert a trinary number, represented as a string (e.g. '102012'), to its
|
|
4
|
+
decimal equivalent using first principles.
|
|
5
|
+
|
|
6
|
+
The program should consider strings specifying an invalid trinary as the
|
|
7
|
+
value 0.
|
|
8
|
+
|
|
9
|
+
Trinary numbers contain three symbols: 0, 1, and 2.
|
|
10
|
+
|
|
11
|
+
The last place in a trinary number is the 1's place. The second to last
|
|
12
|
+
is the 3's place, the third to last is the 9's place, etc.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# "102012"
|
|
16
|
+
1 0 2 0 1 2 # the number
|
|
17
|
+
1*3^5 + 0*3^4 + 2*3^3 + 0*3^2 + 1*3^1 + 2*3^0 # the value
|
|
18
|
+
243 + 0 + 54 + 0 + 3 + 2 = 302
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
If your language provides a method in the standard library to perform the
|
|
22
|
+
conversion, pretend it doesn't exist and implement it yourself.
|
|
23
|
+
|
|
24
|
+
## Hints
|
|
25
|
+
|
|
26
|
+
For the appropriate amount of challenge here, you should only
|
|
27
|
+
use functionality present in Prelude. Try not to use Data.List,
|
|
28
|
+
Data.Char, Data.Bits, or Numeric.
|
|
29
|
+
|
|
30
|
+
Try and use seq, $!, or BangPatterns appropriately to ensure
|
|
31
|
+
that the solution is efficient.
|
|
32
|
+
|
|
33
|
+
Handling invalid input is not necessary.
|
|
34
|
+
|
|
35
|
+
If you've done the Octal exercise, perhaps you should generalize it.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Getting Started
|
|
40
|
+
|
|
41
|
+
For installation and learning resources, refer to the
|
|
42
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
43
|
+
|
|
44
|
+
## Running the tests
|
|
45
|
+
|
|
46
|
+
To run the test suite, execute the following command:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
stack test
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### If you get an error message like this...
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
No .cabal file found in directory
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
You are probably running an old stack version and need
|
|
59
|
+
to upgrade it.
|
|
60
|
+
|
|
61
|
+
#### Otherwise, if you get an error message like this...
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
No compiler found, expected minor version match with...
|
|
65
|
+
Try running "stack setup" to install the correct GHC...
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Just do as it says and it will download and install
|
|
69
|
+
the correct compiler version:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
stack setup
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Running *GHCi*
|
|
76
|
+
|
|
77
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
stack ghci
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Feedback, Issues, Pull Requests
|
|
84
|
+
|
|
85
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
86
|
+
GitHub is the home for all of the Haskell exercises.
|
|
87
|
+
|
|
88
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
89
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
90
|
+
|
|
91
|
+
## Source
|
|
92
|
+
|
|
93
|
+
All of Computer Science [http://www.wolframalpha.com/input/?i=binary&a=*C.binary-_*MathWorld-](http://www.wolframalpha.com/input/?i=binary&a=*C.binary-_*MathWorld-)
|
|
94
|
+
|
|
95
|
+
## Submitting Incomplete Solutions
|
|
96
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Word Count
|
|
2
|
+
|
|
3
|
+
Given a phrase, count the occurrences of each word in that phrase.
|
|
4
|
+
|
|
5
|
+
For example for the input `"olly olly in come free"`
|
|
6
|
+
|
|
7
|
+
```plain
|
|
8
|
+
olly: 2
|
|
9
|
+
in: 1
|
|
10
|
+
come: 1
|
|
11
|
+
free: 1
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## Hints
|
|
16
|
+
|
|
17
|
+
To complete this exercise you need to implement the function `wordCount`,
|
|
18
|
+
that takes a *text* and returns how many times each *word* appears.
|
|
19
|
+
|
|
20
|
+
If it is your first time solving this exercise, it is recommended that you
|
|
21
|
+
stick to the provided signature:
|
|
22
|
+
|
|
23
|
+
```haskell
|
|
24
|
+
wordCount :: String -> [(String, Int)]
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Later, it may be a good idea to revisit this problem and play with other data
|
|
28
|
+
types and libraries:
|
|
29
|
+
|
|
30
|
+
- `Text`, from package *text*.
|
|
31
|
+
- `Map`, from package *containers*.
|
|
32
|
+
- `MultiSet`, from package *multiset*
|
|
33
|
+
|
|
34
|
+
The test suite was intentionally designed to accept almost any type signature
|
|
35
|
+
that makes sense, so you are encouraged to find the one you think is the best.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Getting Started
|
|
40
|
+
|
|
41
|
+
For installation and learning resources, refer to the
|
|
42
|
+
[exercism help page](http://exercism.io/languages/haskell).
|
|
43
|
+
|
|
44
|
+
## Running the tests
|
|
45
|
+
|
|
46
|
+
To run the test suite, execute the following command:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
stack test
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### If you get an error message like this...
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
No .cabal file found in directory
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
You are probably running an old stack version and need
|
|
59
|
+
to upgrade it.
|
|
60
|
+
|
|
61
|
+
#### Otherwise, if you get an error message like this...
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
No compiler found, expected minor version match with...
|
|
65
|
+
Try running "stack setup" to install the correct GHC...
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Just do as it says and it will download and install
|
|
69
|
+
the correct compiler version:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
stack setup
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Running *GHCi*
|
|
76
|
+
|
|
77
|
+
If you want to play with your solution in GHCi, just run the command:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
stack ghci
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Feedback, Issues, Pull Requests
|
|
84
|
+
|
|
85
|
+
The [exercism/haskell](https://github.com/exercism/haskell) repository on
|
|
86
|
+
GitHub is the home for all of the Haskell exercises.
|
|
87
|
+
|
|
88
|
+
If you have feedback about an exercise, or want to help implementing a new
|
|
89
|
+
one, head over there and create an issue. We'll do our best to help you!
|
|
90
|
+
|
|
91
|
+
## Source
|
|
92
|
+
|
|
93
|
+
This is a classic toy problem, but we were reminded of it by seeing it in the Go Tour.
|
|
94
|
+
|
|
95
|
+
## Submitting Incomplete Solutions
|
|
96
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|