trackler 2.2.1.166 → 2.2.1.167
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/cfml/docs/RESOURCES.md +1 -1
- data/tracks/clojure/config/maintainers.json +21 -21
- data/tracks/clojure/config.json +305 -305
- data/tracks/clojure/exercises/accumulate/README.md +0 -3
- data/tracks/clojure/exercises/accumulate/src/accumulate.clj +5 -0
- data/tracks/clojure/exercises/acronym/README.md +0 -1
- data/tracks/clojure/exercises/all-your-base/README.md +1 -1
- data/tracks/clojure/exercises/allergies/README.md +0 -1
- data/tracks/clojure/exercises/armstrong-numbers/README.md +2 -3
- data/tracks/clojure/exercises/armstrong-numbers/src/armstrong_numbers.clj +3 -1
- data/tracks/clojure/exercises/atbash-cipher/README.md +2 -1
- data/tracks/clojure/exercises/beer-song/README.md +2 -2
- data/tracks/clojure/exercises/binary/README.md +2 -0
- data/tracks/clojure/exercises/bracket-push/README.md +3 -2
- data/tracks/clojure/exercises/change/README.md +1 -1
- data/tracks/clojure/exercises/collatz-conjecture/README.md +3 -4
- data/tracks/clojure/exercises/collatz-conjecture/src/collatz_conjecture.clj +3 -1
- data/tracks/clojure/exercises/complex-numbers/README.md +3 -2
- data/tracks/clojure/exercises/complex-numbers/src/complex_numbers.clj +25 -8
- data/tracks/clojure/exercises/crypto-square/README.md +31 -26
- data/tracks/clojure/exercises/diamond/README.md +8 -0
- data/tracks/clojure/exercises/dominoes/README.md +2 -0
- data/tracks/clojure/exercises/dominoes/src/dominoes.clj +3 -1
- data/tracks/clojure/exercises/etl/README.md +3 -1
- data/tracks/clojure/exercises/flatten-array/README.md +1 -2
- data/tracks/clojure/exercises/grade-school/README.md +0 -1
- data/tracks/clojure/exercises/grains/README.md +0 -1
- data/tracks/clojure/exercises/hamming/README.md +4 -3
- data/tracks/clojure/exercises/isbn-verifier/README.md +28 -24
- data/tracks/clojure/exercises/isbn-verifier/src/isbn_verifier.clj +3 -1
- data/tracks/clojure/exercises/isbn-verifier/test/isbn_verifier_test.clj +3 -0
- data/tracks/clojure/exercises/isogram/README.md +2 -1
- data/tracks/clojure/exercises/kindergarten-garden/README.md +13 -13
- data/tracks/clojure/exercises/largest-series-product/src/largest_series_product.clj +5 -0
- data/tracks/clojure/exercises/leap/README.md +1 -1
- data/tracks/clojure/exercises/leap/src/leap.clj +5 -0
- data/tracks/clojure/exercises/luhn/README.md +7 -7
- data/tracks/clojure/exercises/luhn/src/luhn.clj +5 -0
- data/tracks/clojure/exercises/meetup/README.md +16 -13
- data/tracks/clojure/exercises/meetup/src/meetup.clj +5 -0
- data/tracks/clojure/exercises/nth-prime/src/nth_prime.clj +5 -0
- data/tracks/clojure/exercises/nucleotide-count/README.md +8 -22
- data/tracks/clojure/exercises/nucleotide-count/src/nucleotide_count.clj +9 -0
- data/tracks/clojure/exercises/octal/README.md +6 -2
- data/tracks/clojure/exercises/octal/src/octal.clj +5 -0
- data/tracks/clojure/exercises/pangram/README.md +1 -1
- data/tracks/clojure/exercises/pangram/src/pangram.clj +5 -0
- data/tracks/clojure/exercises/pascals-triangle/README.md +2 -2
- data/tracks/clojure/exercises/pascals-triangle/src/pascals_triangle.clj +7 -0
- data/tracks/clojure/exercises/perfect-numbers/README.md +2 -2
- data/tracks/clojure/exercises/perfect-numbers/src/perfect_numbers.clj +5 -0
- data/tracks/clojure/exercises/phone-number/README.md +4 -3
- data/tracks/clojure/exercises/phone-number/src/phone_number.clj +13 -0
- data/tracks/clojure/exercises/pig-latin/README.md +4 -4
- data/tracks/clojure/exercises/pig-latin/src/pig_latin.clj +5 -0
- data/tracks/clojure/exercises/poker/README.md +3 -2
- data/tracks/clojure/exercises/poker/src/poker.clj +3 -1
- data/tracks/clojure/exercises/pov/README.md +3 -5
- data/tracks/clojure/exercises/pov/src/pov.clj +9 -0
- data/tracks/clojure/exercises/prime-factors/src/prime_factors.clj +5 -0
- data/tracks/clojure/exercises/protein-translation/README.md +10 -2
- data/tracks/clojure/exercises/protein-translation/src/protein_translation.clj +9 -0
- data/tracks/clojure/exercises/proverb/README.md +8 -0
- data/tracks/clojure/exercises/queen-attack/README.md +1 -1
- data/tracks/clojure/exercises/queen-attack/src/queen_attack.clj +9 -0
- data/tracks/clojure/exercises/raindrops/src/raindrops.clj +5 -0
- data/tracks/clojure/exercises/reverse-string/README.md +2 -3
- data/tracks/clojure/exercises/rna-transcription/README.md +2 -2
- data/tracks/clojure/exercises/robot-name/src/robot_name.clj +13 -0
- data/tracks/clojure/exercises/robot-simulator/src/robot_simulator.clj +17 -0
- data/tracks/clojure/exercises/roman-numerals/README.md +1 -1
- data/tracks/clojure/exercises/roman-numerals/src/roman_numerals.clj +5 -0
- data/tracks/clojure/exercises/rotational-cipher/README.md +2 -1
- data/tracks/clojure/exercises/rotational-cipher/src/rotational_cipher.clj +5 -0
- data/tracks/clojure/exercises/run-length-encoding/README.md +0 -6
- data/tracks/clojure/exercises/say/README.md +2 -4
- data/tracks/clojure/exercises/scrabble-score/README.md +3 -1
- data/tracks/clojure/exercises/scrabble-score/src/scrabble_score.clj +9 -0
- data/tracks/clojure/exercises/secret-handshake/README.md +2 -2
- data/tracks/clojure/exercises/secret-handshake/src/secret_handshake.clj +5 -0
- data/tracks/clojure/exercises/series/README.md +7 -8
- data/tracks/clojure/exercises/series/src/series.clj +3 -1
- data/tracks/clojure/exercises/sieve/README.md +5 -3
- data/tracks/clojure/exercises/sieve/src/sieve.clj +5 -0
- data/tracks/clojure/exercises/space-age/README.md +1 -1
- data/tracks/clojure/exercises/space-age/src/space_age.clj +33 -0
- data/tracks/clojure/exercises/spiral-matrix/README.md +6 -8
- data/tracks/clojure/exercises/spiral-matrix/src/spiral_matrix.clj +3 -1
- data/tracks/clojure/exercises/strain/src/strain.clj +9 -0
- data/tracks/clojure/exercises/sublist/src/sublist.clj +5 -0
- data/tracks/clojure/exercises/sum-of-multiples/README.md +3 -6
- data/tracks/clojure/exercises/sum-of-multiples/src/sum_of_multiples.clj +5 -0
- data/tracks/clojure/exercises/triangle/README.md +10 -7
- data/tracks/clojure/exercises/triangle/src/triangle.clj +5 -0
- data/tracks/clojure/exercises/trinary/README.md +1 -1
- data/tracks/clojure/exercises/trinary/src/trinary.clj +5 -0
- data/tracks/clojure/exercises/two-fer/README.md +2 -2
- data/tracks/clojure/exercises/word-count/README.md +1 -2
- data/tracks/clojure/exercises/wordy/README.md +0 -5
- data/tracks/clojure/exercises/wordy/src/wordy.clj +5 -0
- data/tracks/csharp/config.json +1 -0
- data/tracks/csharp/exercises/accumulate/Accumulate.csproj +1 -1
- data/tracks/csharp/exercises/acronym/Acronym.csproj +1 -1
- data/tracks/csharp/exercises/all-your-base/AllYourBase.csproj +1 -1
- data/tracks/csharp/exercises/allergies/Allergies.csproj +1 -1
- data/tracks/csharp/exercises/alphametics/Alphametics.csproj +2 -2
- data/tracks/csharp/exercises/anagram/Anagram.csproj +1 -1
- data/tracks/csharp/exercises/armstrong-numbers/ArmstrongNumbers.csproj +1 -1
- data/tracks/csharp/exercises/atbash-cipher/AtbashCipher.csproj +1 -1
- data/tracks/csharp/exercises/bank-account/BankAccount.csproj +1 -1
- data/tracks/csharp/exercises/beer-song/BeerSong.csproj +1 -1
- data/tracks/csharp/exercises/binary/Binary.csproj +1 -1
- data/tracks/csharp/exercises/binary-search/BinarySearch.csproj +1 -1
- data/tracks/csharp/exercises/binary-search-tree/BinarySearchTree.csproj +1 -1
- data/tracks/csharp/exercises/bob/Bob.csproj +1 -1
- data/tracks/csharp/exercises/book-store/BookStore.csproj +1 -1
- data/tracks/csharp/exercises/bowling/Bowling.csproj +1 -1
- data/tracks/csharp/exercises/bracket-push/BracketPush.csproj +1 -1
- data/tracks/csharp/exercises/change/Change.csproj +1 -1
- data/tracks/csharp/exercises/circular-buffer/CircularBuffer.csproj +1 -1
- data/tracks/csharp/exercises/clock/Clock.csproj +1 -1
- data/tracks/csharp/exercises/collatz-conjecture/CollatzConjecture.csproj +1 -1
- data/tracks/csharp/exercises/complex-numbers/ComplexNumbers.csproj +1 -1
- data/tracks/csharp/exercises/connect/Connect.csproj +1 -1
- data/tracks/csharp/exercises/crypto-square/CryptoSquare.csproj +1 -1
- data/tracks/csharp/exercises/custom-set/CustomSet.csproj +1 -1
- data/tracks/csharp/exercises/diamond/Diamond.csproj +3 -3
- data/tracks/csharp/exercises/difference-of-squares/DifferenceOfSquares.csproj +1 -1
- data/tracks/csharp/exercises/diffie-hellman/DiffieHellman.csproj +1 -1
- data/tracks/csharp/exercises/dominoes/Dominoes.csproj +1 -1
- data/tracks/csharp/exercises/dot-dsl/DotDsl.csproj +1 -1
- data/tracks/csharp/exercises/error-handling/ErrorHandling.csproj +1 -1
- data/tracks/csharp/exercises/etl/Etl.csproj +1 -1
- data/tracks/csharp/exercises/flatten-array/FlattenArray.csproj +1 -1
- data/tracks/csharp/exercises/food-chain/FoodChain.csproj +1 -1
- data/tracks/csharp/exercises/forth/Forth.csproj +2 -2
- data/tracks/csharp/exercises/gigasecond/Gigasecond.csproj +1 -1
- data/tracks/csharp/exercises/go-counting/GoCounting.csproj +1 -1
- data/tracks/csharp/exercises/grade-school/GradeSchool.csproj +1 -1
- data/tracks/csharp/exercises/grains/Grains.csproj +1 -1
- data/tracks/csharp/exercises/grep/Grep.csproj +1 -1
- data/tracks/csharp/exercises/hamming/Hamming.csproj +1 -1
- data/tracks/csharp/exercises/hangman/Hangman.csproj +1 -1
- data/tracks/csharp/exercises/hello-world/HelloWorld.csproj +1 -1
- data/tracks/csharp/exercises/hexadecimal/Hexadecimal.csproj +1 -1
- data/tracks/csharp/exercises/house/House.csproj +1 -1
- data/tracks/csharp/exercises/isbn-verifier/IsbnVerifier.csproj +1 -1
- data/tracks/csharp/exercises/isogram/Isogram.csproj +1 -1
- data/tracks/csharp/exercises/kindergarten-garden/KindergartenGarden.csproj +1 -1
- data/tracks/csharp/exercises/largest-series-product/LargestSeriesProduct.csproj +1 -1
- data/tracks/csharp/exercises/leap/Leap.csproj +1 -1
- data/tracks/csharp/exercises/ledger/Ledger.csproj +1 -1
- data/tracks/csharp/exercises/linked-list/LinkedList.csproj +1 -1
- data/tracks/csharp/exercises/list-ops/ListOps.csproj +1 -1
- data/tracks/csharp/exercises/luhn/Luhn.csproj +1 -1
- data/tracks/csharp/exercises/markdown/Markdown.csproj +1 -1
- data/tracks/csharp/exercises/matrix/Matrix.csproj +1 -1
- data/tracks/csharp/exercises/meetup/Meetup.csproj +1 -1
- data/tracks/csharp/exercises/minesweeper/Minesweeper.csproj +1 -1
- data/tracks/csharp/exercises/nth-prime/NthPrime.csproj +1 -1
- data/tracks/csharp/exercises/nucleotide-count/NucleotideCount.csproj +1 -1
- data/tracks/csharp/exercises/ocr-numbers/OcrNumbers.csproj +1 -1
- data/tracks/csharp/exercises/octal/Octal.csproj +1 -1
- data/tracks/csharp/exercises/palindrome-products/PalindromeProducts.csproj +1 -1
- data/tracks/csharp/exercises/pangram/Pangram.csproj +1 -1
- data/tracks/csharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.csproj +1 -1
- data/tracks/csharp/exercises/pascals-triangle/PascalsTriangle.csproj +1 -1
- data/tracks/csharp/exercises/perfect-numbers/PerfectNumbers.csproj +1 -1
- data/tracks/csharp/exercises/phone-number/PhoneNumber.csproj +1 -1
- data/tracks/csharp/exercises/pig-latin/PigLatin.csproj +1 -1
- data/tracks/csharp/exercises/poker/Poker.csproj +1 -1
- data/tracks/csharp/exercises/pov/Pov.csproj +1 -1
- data/tracks/csharp/exercises/prime-factors/PrimeFactors.csproj +1 -1
- data/tracks/csharp/exercises/protein-translation/ProteinTranslation.csproj +1 -1
- data/tracks/csharp/exercises/proverb/Proverb.csproj +1 -1
- data/tracks/csharp/exercises/pythagorean-triplet/PythagoreanTriplet.csproj +1 -1
- data/tracks/csharp/exercises/queen-attack/QueenAttack.csproj +1 -1
- data/tracks/csharp/exercises/rail-fence-cipher/RailFenceCipher.csproj +1 -1
- data/tracks/csharp/exercises/raindrops/Raindrops.csproj +1 -1
- data/tracks/csharp/exercises/rational-numbers/RationalNumbers.csproj +1 -1
- data/tracks/csharp/exercises/react/React.csproj +1 -1
- data/tracks/csharp/exercises/rectangles/Rectangles.csproj +1 -1
- data/tracks/csharp/exercises/reverse-string/ReverseString.csproj +1 -1
- data/tracks/csharp/exercises/rna-transcription/RnaTranscription.csproj +1 -1
- data/tracks/csharp/exercises/robot-name/RobotName.csproj +1 -1
- data/tracks/csharp/exercises/robot-simulator/RobotSimulator.csproj +1 -1
- data/tracks/csharp/exercises/roman-numerals/RomanNumerals.csproj +1 -1
- data/tracks/csharp/exercises/rotational-cipher/RotationalCipher.csproj +1 -1
- data/tracks/csharp/exercises/run-length-encoding/RunLengthEncoding.csproj +1 -1
- data/tracks/csharp/exercises/saddle-points/SaddlePoints.csproj +1 -1
- data/tracks/csharp/exercises/say/Say.csproj +1 -1
- data/tracks/csharp/exercises/scale-generator/ScaleGenerator.csproj +1 -1
- data/tracks/csharp/exercises/scrabble-score/ScrabbleScore.csproj +1 -1
- data/tracks/csharp/exercises/secret-handshake/SecretHandshake.csproj +1 -1
- data/tracks/csharp/exercises/series/Series.csproj +1 -1
- data/tracks/csharp/exercises/sgf-parsing/SgfParsing.csproj +2 -2
- data/tracks/csharp/exercises/sieve/Sieve.csproj +1 -1
- data/tracks/csharp/exercises/simple-cipher/SimpleCipher.csproj +1 -1
- data/tracks/csharp/exercises/simple-linked-list/SimpleLinkedList.csproj +1 -1
- data/tracks/csharp/exercises/space-age/SpaceAge.csproj +1 -1
- data/tracks/csharp/exercises/spiral-matrix/SpiralMatrix.csproj +1 -1
- data/tracks/csharp/exercises/strain/Strain.csproj +1 -1
- data/tracks/csharp/exercises/sublist/Sublist.csproj +1 -1
- data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiples.csproj +1 -1
- data/tracks/csharp/exercises/tournament/Tournament.csproj +1 -1
- data/tracks/csharp/exercises/transpose/Transpose.csproj +1 -1
- data/tracks/csharp/exercises/tree-building/TreeBuilding.csproj +1 -1
- data/tracks/csharp/exercises/triangle/Triangle.csproj +1 -1
- data/tracks/csharp/exercises/trinary/Trinary.csproj +1 -1
- data/tracks/csharp/exercises/twelve-days/TwelveDays.csproj +1 -1
- data/tracks/csharp/exercises/two-bucket/TwoBucket.csproj +1 -1
- data/tracks/csharp/exercises/two-fer/TwoFer.csproj +1 -1
- data/tracks/csharp/exercises/variable-length-quantity/VariableLengthQuantity.csproj +1 -1
- data/tracks/csharp/exercises/word-count/WordCount.csproj +1 -1
- data/tracks/csharp/exercises/word-search/WordSearch.csproj +1 -1
- data/tracks/csharp/exercises/wordy/Wordy.csproj +1 -1
- data/tracks/csharp/exercises/zebra-puzzle/ZebraPuzzle.csproj +1 -1
- data/tracks/csharp/exercises/zipper/Zipper.csproj +1 -1
- data/tracks/fsharp/config.json +1 -0
- data/tracks/fsharp/exercises/accumulate/Accumulate.fsproj +1 -1
- data/tracks/fsharp/exercises/acronym/Acronym.fsproj +1 -1
- data/tracks/fsharp/exercises/all-your-base/AllYourBase.fsproj +1 -1
- data/tracks/fsharp/exercises/allergies/Allergies.fsproj +1 -1
- data/tracks/fsharp/exercises/alphametics/Alphametics.fsproj +1 -1
- data/tracks/fsharp/exercises/anagram/Anagram.fsproj +1 -1
- data/tracks/fsharp/exercises/armstrong-numbers/ArmstrongNumbers.fsproj +1 -1
- data/tracks/fsharp/exercises/atbash-cipher/AtbashCipher.fsproj +1 -1
- data/tracks/fsharp/exercises/bank-account/BankAccount.fsproj +1 -1
- data/tracks/fsharp/exercises/beer-song/BeerSong.fsproj +1 -1
- data/tracks/fsharp/exercises/binary/Binary.fsproj +1 -1
- data/tracks/fsharp/exercises/binary-search/BinarySearch.fsproj +1 -1
- data/tracks/fsharp/exercises/binary-search-tree/BinarySearchTree.fsproj +1 -1
- data/tracks/fsharp/exercises/bob/Bob.fsproj +1 -1
- data/tracks/fsharp/exercises/book-store/BookStore.fsproj +1 -1
- data/tracks/fsharp/exercises/bowling/Bowling.fsproj +1 -1
- data/tracks/fsharp/exercises/bracket-push/BracketPush.fsproj +1 -1
- data/tracks/fsharp/exercises/change/Change.fsproj +1 -1
- data/tracks/fsharp/exercises/circular-buffer/CircularBuffer.fsproj +1 -1
- data/tracks/fsharp/exercises/clock/Clock.fsproj +1 -1
- data/tracks/fsharp/exercises/collatz-conjecture/CollatzConjecture.fsproj +1 -1
- data/tracks/fsharp/exercises/complex-numbers/ComplexNumbers.fsproj +1 -1
- data/tracks/fsharp/exercises/connect/Connect.fsproj +1 -1
- data/tracks/fsharp/exercises/crypto-square/CryptoSquare.fsproj +1 -1
- data/tracks/fsharp/exercises/custom-set/CustomSet.fsproj +1 -1
- data/tracks/fsharp/exercises/diamond/Diamond.fsproj +1 -1
- data/tracks/fsharp/exercises/difference-of-squares/DifferenceOfSquares.fsproj +1 -1
- data/tracks/fsharp/exercises/diffie-hellman/DiffieHellman.fsproj +1 -1
- data/tracks/fsharp/exercises/dominoes/Dominoes.fsproj +1 -1
- data/tracks/fsharp/exercises/dot-dsl/DotDsl.fsproj +1 -1
- data/tracks/fsharp/exercises/error-handling/ErrorHandling.fsproj +1 -1
- data/tracks/fsharp/exercises/etl/Etl.fsproj +1 -1
- data/tracks/fsharp/exercises/food-chain/FoodChain.fsproj +1 -1
- data/tracks/fsharp/exercises/forth/Forth.fsproj +1 -1
- data/tracks/fsharp/exercises/gigasecond/Gigasecond.fsproj +1 -1
- data/tracks/fsharp/exercises/go-counting/GoCounting.fsproj +1 -1
- data/tracks/fsharp/exercises/grade-school/GradeSchool.fsproj +1 -1
- data/tracks/fsharp/exercises/grains/Grains.fsproj +1 -1
- data/tracks/fsharp/exercises/grep/Grep.fsproj +1 -1
- data/tracks/fsharp/exercises/hamming/Hamming.fsproj +1 -1
- data/tracks/fsharp/exercises/hangman/Hangman.fsproj +1 -1
- data/tracks/fsharp/exercises/hello-world/HelloWorld.fsproj +1 -1
- data/tracks/fsharp/exercises/hexadecimal/Hexadecimal.fsproj +1 -1
- data/tracks/fsharp/exercises/house/House.fsproj +1 -1
- data/tracks/fsharp/exercises/isbn-verifier/IsbnVerifier.fsproj +1 -1
- data/tracks/fsharp/exercises/isogram/Isogram.fsproj +1 -1
- data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGarden.fsproj +1 -1
- data/tracks/fsharp/exercises/largest-series-product/LargestSeriesProduct.fsproj +1 -1
- data/tracks/fsharp/exercises/leap/Leap.fsproj +1 -1
- data/tracks/fsharp/exercises/ledger/Ledger.fsproj +1 -1
- data/tracks/fsharp/exercises/lens-person/LensPerson.fsproj +1 -1
- data/tracks/fsharp/exercises/linked-list/LinkedList.fsproj +1 -1
- data/tracks/fsharp/exercises/list-ops/ListOps.fsproj +1 -1
- data/tracks/fsharp/exercises/luhn/Luhn.fsproj +1 -1
- data/tracks/fsharp/exercises/markdown/Markdown.fsproj +1 -1
- data/tracks/fsharp/exercises/matrix/Matrix.fsproj +1 -1
- data/tracks/fsharp/exercises/meetup/Meetup.fsproj +1 -1
- data/tracks/fsharp/exercises/minesweeper/Minesweeper.fsproj +1 -1
- data/tracks/fsharp/exercises/nth-prime/NthPrime.fsproj +1 -1
- data/tracks/fsharp/exercises/nucleotide-count/NucleotideCount.fsproj +1 -1
- data/tracks/fsharp/exercises/ocr-numbers/OcrNumbers.fsproj +1 -1
- data/tracks/fsharp/exercises/octal/Octal.fsproj +1 -1
- data/tracks/fsharp/exercises/palindrome-products/PalindromeProducts.fsproj +1 -1
- data/tracks/fsharp/exercises/pangram/Pangram.fsproj +1 -1
- data/tracks/fsharp/exercises/parallel-letter-frequency/ParallelLetterFrequency.fsproj +1 -1
- data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangle.fsproj +1 -1
- data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbers.fsproj +1 -1
- data/tracks/fsharp/exercises/phone-number/PhoneNumber.fsproj +1 -1
- data/tracks/fsharp/exercises/pig-latin/PigLatin.fsproj +1 -1
- data/tracks/fsharp/exercises/poker/Poker.fsproj +1 -1
- data/tracks/fsharp/exercises/pov/Pov.fsproj +1 -1
- data/tracks/fsharp/exercises/prime-factors/PrimeFactors.fsproj +1 -1
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslation.fsproj +1 -1
- data/tracks/fsharp/exercises/proverb/Proverb.fsproj +1 -1
- data/tracks/fsharp/exercises/pythagorean-triplet/PythagoreanTriplet.fsproj +1 -1
- data/tracks/fsharp/exercises/queen-attack/QueenAttack.fsproj +1 -1
- data/tracks/fsharp/exercises/rail-fence-cipher/RailFenceCipher.fsproj +1 -1
- data/tracks/fsharp/exercises/raindrops/Raindrops.fsproj +1 -1
- data/tracks/fsharp/exercises/rational-numbers/RationalNumbers.fsproj +1 -1
- data/tracks/fsharp/exercises/react/React.fsproj +1 -1
- data/tracks/fsharp/exercises/rectangles/Rectangles.fsproj +1 -1
- data/tracks/fsharp/exercises/reverse-string/ReverseString.fsproj +1 -1
- data/tracks/fsharp/exercises/rna-transcription/RnaTranscription.fsproj +1 -1
- data/tracks/fsharp/exercises/robot-name/RobotName.fsproj +1 -1
- data/tracks/fsharp/exercises/robot-simulator/RobotSimulator.fsproj +1 -1
- data/tracks/fsharp/exercises/roman-numerals/RomanNumerals.fsproj +1 -1
- data/tracks/fsharp/exercises/rotational-cipher/RotationalCipher.fsproj +1 -1
- data/tracks/fsharp/exercises/run-length-encoding/RunLengthEncoding.fsproj +1 -1
- data/tracks/fsharp/exercises/saddle-points/SaddlePoints.fsproj +1 -1
- data/tracks/fsharp/exercises/say/Say.fsproj +1 -1
- data/tracks/fsharp/exercises/scale-generator/ScaleGenerator.fsproj +1 -1
- data/tracks/fsharp/exercises/scrabble-score/ScrabbleScore.fsproj +1 -1
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshake.fsproj +1 -1
- data/tracks/fsharp/exercises/series/Series.fsproj +1 -1
- data/tracks/fsharp/exercises/sgf-parsing/SgfParsing.fsproj +1 -1
- data/tracks/fsharp/exercises/sieve/Sieve.fsproj +1 -1
- data/tracks/fsharp/exercises/simple-cipher/Example.fs +31 -21
- data/tracks/fsharp/exercises/simple-cipher/SimpleCipher.fs +8 -4
- data/tracks/fsharp/exercises/simple-cipher/SimpleCipher.fsproj +1 -1
- data/tracks/fsharp/exercises/simple-cipher/SimpleCipherTest.fs +51 -73
- data/tracks/fsharp/exercises/simple-linked-list/SimpleLinkedList.fsproj +1 -1
- data/tracks/fsharp/exercises/space-age/SpaceAge.fsproj +1 -1
- data/tracks/fsharp/exercises/spiral-matrix/SpiralMatrix.fsproj +1 -1
- data/tracks/fsharp/exercises/strain/Strain.fsproj +1 -1
- data/tracks/fsharp/exercises/sublist/Sublist.fsproj +1 -1
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiples.fsproj +1 -1
- data/tracks/fsharp/exercises/tournament/Tournament.fsproj +1 -1
- data/tracks/fsharp/exercises/transpose/Transpose.fsproj +1 -1
- data/tracks/fsharp/exercises/tree-building/TreeBuilding.fsproj +1 -1
- data/tracks/fsharp/exercises/triangle/Triangle.fsproj +1 -1
- data/tracks/fsharp/exercises/trinary/Trinary.fsproj +1 -1
- data/tracks/fsharp/exercises/twelve-days/TwelveDays.fsproj +1 -1
- data/tracks/fsharp/exercises/two-bucket/TwoBucket.fsproj +1 -1
- data/tracks/fsharp/exercises/two-fer/TwoFer.fsproj +1 -1
- data/tracks/fsharp/exercises/variable-length-quantity/VariableLengthQuantity.fsproj +1 -1
- data/tracks/fsharp/exercises/word-count/WordCount.fsproj +1 -1
- data/tracks/fsharp/exercises/word-search/WordSearch.fsproj +1 -1
- data/tracks/fsharp/exercises/wordy/Wordy.fsproj +1 -1
- data/tracks/fsharp/exercises/yacht/Yacht.fsproj +1 -1
- data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzle.fsproj +1 -1
- data/tracks/fsharp/exercises/zipper/Zipper.fsproj +1 -1
- data/tracks/fsharp/generators/Generators.fs +53 -2
- data/tracks/fsharp/generators/Generators.fsproj +3 -3
- data/tracks/kotlin/exercises/atbash-cipher/.meta/version +1 -1
- data/tracks/kotlin/exercises/collatz-conjecture/.meta/version +1 -1
- data/tracks/kotlin/exercises/diamond/.meta/version +1 -1
- data/tracks/kotlin/exercises/grains/.meta/version +1 -1
- data/tracks/kotlin/exercises/largest-series-product/.meta/version +1 -1
- data/tracks/kotlin/exercises/nth-prime/.meta/version +1 -1
- data/tracks/kotlin/exercises/saddle-points/.meta/version +1 -1
- data/tracks/kotlin/exercises/sieve/.meta/version +1 -1
- data/tracks/kotlin/exercises/triangle/.meta/version +1 -1
- data/tracks/lua/config.json +1 -1
- data/tracks/ocaml/config/maintainers.json +11 -11
- data/tracks/ocaml/config.json +179 -175
- data/tracks/ocaml/docs/ABOUT.md +4 -8
- data/tracks/reasonml/.gitignore +2 -0
- data/tracks/reasonml/config.json +53 -6
- data/tracks/reasonml/docs/LEARNING.md +2 -0
- data/tracks/reasonml/docs/RESOURCES.md +6 -4
- data/tracks/reasonml/exercises/change/README.md +41 -0
- data/tracks/reasonml/exercises/change/__tests__/Change_test.re +39 -0
- data/tracks/reasonml/exercises/change/bsconfig.json +30 -0
- data/tracks/reasonml/exercises/change/package.json +20 -0
- data/tracks/reasonml/exercises/change/src/Example.re +37 -0
- data/tracks/reasonml/exercises/leap/__tests__/Leap_test.re +5 -4
- data/tracks/reasonml/exercises/leap/src/Example.re +1 -1
- data/tracks/reasonml/exercises/raindrops/README.md +33 -0
- data/tracks/reasonml/exercises/raindrops/__tests__/Raindrops_test.re +63 -0
- data/tracks/reasonml/exercises/raindrops/bsconfig.json +30 -0
- data/tracks/reasonml/exercises/raindrops/package-lock.json +5148 -0
- data/tracks/reasonml/exercises/raindrops/package.json +20 -0
- data/tracks/reasonml/exercises/raindrops/src/Example.re +18 -0
- data/tracks/reasonml/exercises/word-count/README.md +24 -0
- data/tracks/reasonml/exercises/word-count/__tests__/WordCount_test.re +78 -0
- data/tracks/reasonml/exercises/word-count/bsconfig.json +30 -0
- data/tracks/reasonml/exercises/word-count/package-lock.json +5853 -0
- data/tracks/reasonml/exercises/word-count/package.json +18 -0
- data/tracks/reasonml/exercises/word-count/src/Example.re +20 -0
- metadata +51 -3
- data/tracks/clojure/exercises/pov/.gitignore +0 -3
@@ -24,9 +24,6 @@ Check out the test suite to see the expected function signature.
|
|
24
24
|
Keep your hands off that collect/map/fmap/whatchamacallit functionality
|
25
25
|
provided by your standard library!
|
26
26
|
Solve this one yourself using other basic tools instead.
|
27
|
-
|
28
|
-
Lisp specific: it's perfectly fine to use `MAPCAR` or the equivalent,
|
29
|
-
as this is idiomatic Lisp, not a library function.
|
30
27
|
## Source
|
31
28
|
|
32
29
|
Conversation with James Edward Gray II [https://twitter.com/jeg2](https://twitter.com/jeg2)
|
@@ -6,7 +6,6 @@ Techies love their TLA (Three Letter Acronyms)!
|
|
6
6
|
|
7
7
|
Help generate some jargon by writing a program that converts a long name
|
8
8
|
like Portable Network Graphics to its acronym (PNG).
|
9
|
-
|
10
9
|
## Source
|
11
10
|
|
12
11
|
Julien Vanier [https://github.com/monkbroc](https://github.com/monkbroc)
|
@@ -6,6 +6,7 @@ Implement general base conversion. Given a number in base **a**,
|
|
6
6
|
represented as a sequence of digits, convert it to base **b**.
|
7
7
|
|
8
8
|
## Note
|
9
|
+
|
9
10
|
- Try to implement the conversion yourself.
|
10
11
|
Do not use something else to perform the conversion for you.
|
11
12
|
|
@@ -28,7 +29,6 @@ The number 1120, *in base 3*, means:
|
|
28
29
|
|
29
30
|
I think you got the idea!
|
30
31
|
|
31
|
-
|
32
32
|
*Yes. Those three numbers above are exactly the same. Congratulations!*
|
33
33
|
|
34
34
|
## Submitting Incomplete Solutions
|
@@ -28,7 +28,6 @@ Note: a given score may include allergens **not** listed above (i.e.
|
|
28
28
|
allergens that score 256, 512, 1024, etc.). Your program should
|
29
29
|
ignore those components of the score. For example, if the allergy
|
30
30
|
score is 257, your program should only report the eggs (1) allergy.
|
31
|
-
|
32
31
|
## Source
|
33
32
|
|
34
33
|
Jumpstart Lab Warm-up [http://jumpstartlab.com](http://jumpstartlab.com)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
# Armstrong Numbers
|
2
2
|
|
3
3
|
An [Armstrong number](https://en.wikipedia.org/wiki/Narcissistic_number) is a number that is the sum of its own digits each raised to the power of the number of digits.
|
4
4
|
|
@@ -10,10 +10,9 @@ For example:
|
|
10
10
|
- 154 is *not* an Armstrong number, because: `154 != 1^3 + 5^3 + 4^3 = 1 + 125 + 64 = 190`
|
11
11
|
|
12
12
|
Write some code to determine whether a number is an Armstrong number.
|
13
|
-
|
14
13
|
## Source
|
15
14
|
|
16
|
-
|
15
|
+
Wikipedia [https://en.wikipedia.org/wiki/Narcissistic_number](https://en.wikipedia.org/wiki/Narcissistic_number)
|
17
16
|
|
18
17
|
## Submitting Incomplete Solutions
|
19
18
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -9,7 +9,7 @@ letter, the second with the second-last, and so on.
|
|
9
9
|
|
10
10
|
An Atbash cipher for the Latin alphabet would be as follows:
|
11
11
|
|
12
|
-
```
|
12
|
+
```text
|
13
13
|
Plain: abcdefghijklmnopqrstuvwxyz
|
14
14
|
Cipher: zyxwvutsrqponmlkjihgfedcba
|
15
15
|
```
|
@@ -23,6 +23,7 @@ being 5 letters, and punctuation is excluded. This is to make it harder to guess
|
|
23
23
|
things based on word boundaries.
|
24
24
|
|
25
25
|
## Examples
|
26
|
+
|
26
27
|
- Encoding `test` gives `gvhg`
|
27
28
|
- Decoding `gvhg` gives `test`
|
28
29
|
- Decoding `gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt` gives `thequickbrownfoxjumpsoverthelazydog`
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# Beer Song
|
2
2
|
|
3
|
-
|
3
|
+
Recite the lyrics to that beloved classic, that field-trip favorite: 99 Bottles of Beer on the Wall.
|
4
4
|
|
5
5
|
Note that not all verses are identical.
|
6
6
|
|
7
|
-
```
|
7
|
+
```text
|
8
8
|
99 bottles of beer on the wall, 99 bottles of beer.
|
9
9
|
Take one down and pass it around, 98 bottles of beer on the wall.
|
10
10
|
|
@@ -7,10 +7,12 @@ string, your program should produce a decimal output. The
|
|
7
7
|
program should handle invalid inputs.
|
8
8
|
|
9
9
|
## Note
|
10
|
+
|
10
11
|
- Implement the conversion yourself.
|
11
12
|
Do not use something else to perform the conversion for you.
|
12
13
|
|
13
14
|
## About Binary (Base-2)
|
15
|
+
|
14
16
|
Decimal is a base-10 system.
|
15
17
|
|
16
18
|
A number 23 in base 10 notation can be understood
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Bracket Push
|
2
2
|
|
3
|
-
Given a string containing brackets `[]`, braces `{}
|
4
|
-
verify that all
|
3
|
+
Given a string containing brackets `[]`, braces `{}`, parentheses `()`,
|
4
|
+
or any combination thereof, verify that any and all pairs are matched
|
5
|
+
and nested correctly.
|
5
6
|
## Source
|
6
7
|
|
7
8
|
Ginna Baker
|
@@ -17,7 +17,7 @@ that the sum of the coins' value would equal the correct amount of change.
|
|
17
17
|
- Can you ask for a change value smaller than the smallest coin value?
|
18
18
|
## Source
|
19
19
|
|
20
|
-
Software Craftsmanship - Kata
|
20
|
+
Software Craftsmanship - Coin Change Kata [https://web.archive.org/web/20130115115225/http://craftsmanship.sv.cmu.edu:80/exercises/coin-change-kata](https://web.archive.org/web/20130115115225/http://craftsmanship.sv.cmu.edu:80/exercises/coin-change-kata)
|
21
21
|
|
22
22
|
## Submitting Incomplete Solutions
|
23
23
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
# Collatz Conjecture
|
2
2
|
|
3
3
|
The Collatz Conjecture or 3x+1 problem can be summarized as follows:
|
4
4
|
|
@@ -10,6 +10,7 @@ always reach 1 eventually.
|
|
10
10
|
Given a number n, return the number of steps required to reach 1.
|
11
11
|
|
12
12
|
## Examples
|
13
|
+
|
13
14
|
Starting with n = 12, the steps would be as follows:
|
14
15
|
|
15
16
|
0. 12
|
@@ -24,11 +25,9 @@ Starting with n = 12, the steps would be as follows:
|
|
24
25
|
9. 1
|
25
26
|
|
26
27
|
Resulting in 9 steps. So for input n = 12, the return value would be 9.
|
27
|
-
|
28
28
|
## Source
|
29
29
|
|
30
|
-
An unsolved problem in mathematics named after mathematician Lothar Collatz
|
31
|
-
see more at [collatz conjecture wikipedia](https://en.wikipedia.org/wiki/3x_%2B_1_problem)
|
30
|
+
An unsolved problem in mathematics named after mathematician Lothar Collatz [https://en.wikipedia.org/wiki/3x_%2B_1_problem](https://en.wikipedia.org/wiki/3x_%2B_1_problem)
|
32
31
|
|
33
32
|
## Submitting Incomplete Solutions
|
34
33
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# Complex Numbers
|
2
|
+
|
1
3
|
A complex number is a number in the form `a + b * i` where `a` and `b` are real and `i` satisfies `i^2 = -1`.
|
2
4
|
|
3
5
|
`a` is called the real part and `b` is called the imaginary part of `z`.
|
@@ -28,10 +30,9 @@ Implement the following operations:
|
|
28
30
|
|
29
31
|
|
30
32
|
Assume the programming language you are using does not have an implementation of complex numbers.
|
31
|
-
|
32
33
|
## Source
|
33
34
|
|
34
|
-
[wikipedia
|
35
|
+
Wikipedia [https://en.wikipedia.org/wiki/Complex_number](https://en.wikipedia.org/wiki/Complex_number)
|
35
36
|
|
36
37
|
## Submitting Incomplete Solutions
|
37
38
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -1,17 +1,34 @@
|
|
1
1
|
(ns complex-numbers)
|
2
2
|
|
3
|
-
(defn real [[a b]]
|
3
|
+
(defn real [[a b]] ;; <- arglist goes here
|
4
|
+
;; your code goes here
|
5
|
+
)
|
4
6
|
|
5
|
-
(defn imaginary [[a b]]
|
7
|
+
(defn imaginary [[a b]] ;; <- arglist goes here
|
8
|
+
;; your code goes here
|
9
|
+
)
|
6
10
|
|
7
|
-
(defn abs [[a b]]
|
11
|
+
(defn abs [[a b]] ;; <- arglist goes here
|
12
|
+
;; your code goes here
|
13
|
+
)
|
8
14
|
|
9
|
-
(defn conjugate [[a b]]
|
15
|
+
(defn conjugate [[a b]] ;; <- arglist goes here
|
16
|
+
;; your code goes here
|
17
|
+
)
|
10
18
|
|
11
|
-
(defn add [[a b] [c d]]
|
19
|
+
(defn add [[a b] [c d]] ;; <- arglist goes here
|
20
|
+
;; your code goes here
|
21
|
+
)
|
12
22
|
|
13
|
-
(defn sub [[a b] [c d]])
|
14
23
|
|
15
|
-
(defn
|
24
|
+
(defn sub [[a b] [c d]] ;; <- arglist goes here
|
25
|
+
;; your code goes here
|
26
|
+
)
|
16
27
|
|
17
|
-
(defn
|
28
|
+
(defn mul [[a b] [c d]] ;; <- arglist goes here
|
29
|
+
;; your code goes here
|
30
|
+
)
|
31
|
+
|
32
|
+
(defn div [[a b] [c d]] ;; <- arglist goes here
|
33
|
+
;; your code goes here
|
34
|
+
)
|
@@ -12,11 +12,15 @@ regarded as forming a rectangle when printed with intervening newlines.
|
|
12
12
|
|
13
13
|
For example, the sentence
|
14
14
|
|
15
|
-
|
15
|
+
```text
|
16
|
+
"If man was meant to stay on the ground, god would have given us roots."
|
17
|
+
```
|
16
18
|
|
17
19
|
is normalized to:
|
18
20
|
|
19
|
-
|
21
|
+
```text
|
22
|
+
"ifmanwasmeanttostayonthegroundgodwouldhavegivenusroots"
|
23
|
+
```
|
20
24
|
|
21
25
|
The plaintext should be organized in to a rectangle. The size of the
|
22
26
|
rectangle (`r x c`) should be decided by the length of the message,
|
@@ -26,14 +30,14 @@ and `r` is the number of rows.
|
|
26
30
|
Our normalized text is 54 characters long, dictating a rectangle with
|
27
31
|
`c = 8` and `r = 7`:
|
28
32
|
|
29
|
-
```
|
30
|
-
ifmanwas
|
31
|
-
meanttos
|
32
|
-
tayonthe
|
33
|
-
groundgo
|
34
|
-
dwouldha
|
35
|
-
vegivenu
|
36
|
-
sroots
|
33
|
+
```text
|
34
|
+
"ifmanwas"
|
35
|
+
"meanttos"
|
36
|
+
"tayonthe"
|
37
|
+
"groundgo"
|
38
|
+
"dwouldha"
|
39
|
+
"vegivenu"
|
40
|
+
"sroots "
|
37
41
|
```
|
38
42
|
|
39
43
|
The coded message is obtained by reading down the columns going left to
|
@@ -41,30 +45,31 @@ right.
|
|
41
45
|
|
42
46
|
The message above is coded as:
|
43
47
|
|
44
|
-
```
|
45
|
-
imtgdvsfearwermayoogoanouuiontnnlvtwttddesaohghnsseoau
|
48
|
+
```text
|
49
|
+
"imtgdvsfearwermayoogoanouuiontnnlvtwttddesaohghnsseoau"
|
46
50
|
```
|
47
51
|
|
48
|
-
Output the encoded text in chunks
|
49
|
-
|
50
|
-
|
52
|
+
Output the encoded text in chunks that fill perfect rectangles `(r X c)`,
|
53
|
+
with `c` chunks of `r` length, separated by spaces. For phrases that are
|
54
|
+
`n` characters short of the perfect rectangle, pad each of the last `n`
|
55
|
+
chunks with a single trailing space.
|
51
56
|
|
52
|
-
```
|
53
|
-
imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn
|
57
|
+
```text
|
58
|
+
"imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau "
|
54
59
|
```
|
55
60
|
|
56
61
|
Notice that were we to stack these, we could visually decode the
|
57
62
|
cyphertext back in to the original message:
|
58
63
|
|
59
|
-
```
|
60
|
-
imtgdvs
|
61
|
-
fearwer
|
62
|
-
mayoogo
|
63
|
-
anouuio
|
64
|
-
ntnnlvt
|
65
|
-
wttddes
|
66
|
-
aohghn
|
67
|
-
sseoau
|
64
|
+
```text
|
65
|
+
"imtgdvs"
|
66
|
+
"fearwer"
|
67
|
+
"mayoogo"
|
68
|
+
"anouuio"
|
69
|
+
"ntnnlvt"
|
70
|
+
"wttddes"
|
71
|
+
"aohghn "
|
72
|
+
"sseoau "
|
68
73
|
```
|
69
74
|
## Source
|
70
75
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# Diamond
|
2
|
+
|
1
3
|
The diamond kata takes as its input a letter, and outputs it in a diamond
|
2
4
|
shape. Given a letter, it prints a diamond starting with 'A', with the
|
3
5
|
supplied letter at the widest point.
|
@@ -49,3 +51,9 @@ E·······E
|
|
49
51
|
···B·B···
|
50
52
|
····A····
|
51
53
|
```
|
54
|
+
## Source
|
55
|
+
|
56
|
+
Seb Rose [http://claysnow.co.uk/recycling-tests-in-tdd/](http://claysnow.co.uk/recycling-tests-in-tdd/)
|
57
|
+
|
58
|
+
## Submitting Incomplete Solutions
|
59
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -1,8 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# ETL
|
2
2
|
|
3
3
|
We are going to do the `Transform` step of an Extract-Transform-Load.
|
4
4
|
|
5
5
|
### ETL
|
6
|
+
|
6
7
|
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
8
|
we're going to migrate this."
|
8
9
|
|
@@ -11,6 +12,7 @@ once." That's then typically followed by much forehead slapping and
|
|
11
12
|
moaning about how stupid we could possibly be.)
|
12
13
|
|
13
14
|
### The goal
|
15
|
+
|
14
16
|
We're going to extract some scrabble scores from a legacy system.
|
15
17
|
|
16
18
|
The old system stored a list of letters per score:
|
@@ -3,13 +3,12 @@
|
|
3
3
|
Take a nested list and return a single flattened list with all values except nil/null.
|
4
4
|
|
5
5
|
The challenge is to write a function that accepts an arbitrarily-deep nested list-like structure and returns a flattened structure without any nil/null values.
|
6
|
-
|
6
|
+
|
7
7
|
For Example
|
8
8
|
|
9
9
|
input: [1,[2,3,null,4],[null],5]
|
10
10
|
|
11
11
|
output: [1,2,3,4,5]
|
12
|
-
|
13
12
|
## Source
|
14
13
|
|
15
14
|
Interview Question [https://reference.wolfram.com/language/ref/Flatten.html](https://reference.wolfram.com/language/ref/Flatten.html)
|
@@ -31,9 +31,10 @@ The Hamming distance between these two DNA strands is 7.
|
|
31
31
|
|
32
32
|
# Implementation notes
|
33
33
|
|
34
|
-
The Hamming distance is only defined for sequences of equal length
|
35
|
-
|
36
|
-
of
|
34
|
+
The Hamming distance is only defined for sequences of equal length, so
|
35
|
+
an attempt to calculate it between sequences of different lengths should
|
36
|
+
not work. The general handling of this situation (e.g., raising an
|
37
|
+
exception vs returning a special value) may differ between languages.
|
37
38
|
## Source
|
38
39
|
|
39
40
|
The Calculating Point Mutations problem at Rosalind [http://rosalind.info/problems/hamm/](http://rosalind.info/problems/hamm/)
|
@@ -1,43 +1,47 @@
|
|
1
|
-
|
1
|
+
# ISBN Verifier
|
2
2
|
|
3
|
-
|
3
|
+
The [ISBN-10 verification process](https://en.wikipedia.org/wiki/International_Standard_Book_Number) is used to validate book identification
|
4
|
+
numbers. These normally contain dashes and look like: `3-598-21508-8`
|
4
5
|
|
5
|
-
|
6
|
-
Putting this into place requires some thinking about preprocessing/parsing of the string prior to calculating the check digit for the ISBN.
|
6
|
+
## ISBN
|
7
7
|
|
8
|
-
The
|
8
|
+
The ISBN-10 format is 9 digits (0 to 9) plus one check character (either a digit or an X only). In the case the check character is an X, this represents the value '10'. These may be communicated with or without hyphens, and can be checked for their validity by the following formula:
|
9
9
|
|
10
|
-
|
10
|
+
```
|
11
|
+
(x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 1) mod 11 == 0
|
12
|
+
```
|
11
13
|
|
12
|
-
|
13
|
-
The first digit block indicates the group where the ISBN belongs. Groups can consist of shared languages, geographic regions or countries. The leading '3' signals this ISBN is from a german speaking country.
|
14
|
-
The following number block is to identify the publisher. Since this is a three digit publisher number there is a 5 digit title number for this book.
|
15
|
-
The last digit in the ISBN is the check digit which is used to detect read errors.
|
14
|
+
If the result is 0, then it is a valid ISBN-10, otherwise it is invalid.
|
16
15
|
|
17
|
-
|
18
|
-
The check digit can additionally be an 'X' to allow 10 to be a valid check digit as well.
|
16
|
+
## Example
|
19
17
|
|
20
|
-
|
21
|
-
|
22
|
-
(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11
|
18
|
+
Let's take the ISBN-10 `3-598-21508-8`. We plug it in to the formula, and get:
|
19
|
+
```
|
20
|
+
(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0
|
21
|
+
```
|
22
|
+
|
23
|
+
Since the result is 0, this proves that our ISBN is valid.
|
24
|
+
|
25
|
+
## Task
|
26
|
+
|
27
|
+
Given a string the program should check if the provided string is a valid ISBN-10.
|
28
|
+
Putting this into place requires some thinking about preprocessing/parsing of the string prior to calculating the check digit for the ISBN.
|
29
|
+
|
30
|
+
The program should be able to verify ISBN-10 both with and without separating dashes.
|
23
31
|
|
24
|
-
Which proves that the ISBN is valid.
|
25
32
|
|
26
33
|
## Caveats
|
27
34
|
|
28
|
-
Converting from
|
29
|
-
|
35
|
+
Converting from strings to numbers can be tricky in certain languages.
|
36
|
+
Now, it's even trickier since the check digit of an ISBN-10 may be 'X' (representing '10'). For instance `3-598-21507-X` is a valid ISBN-10.
|
30
37
|
|
31
38
|
## Bonus tasks
|
32
39
|
|
33
|
-
* Generate a valid ISBN-13 from the input ISBN-10 (and maybe verify it again with a derived verifier)
|
34
|
-
|
35
|
-
* Generate valid ISBN, maybe even from a given starting ISBN
|
40
|
+
* Generate a valid ISBN-13 from the input ISBN-10 (and maybe verify it again with a derived verifier).
|
36
41
|
|
37
|
-
|
42
|
+
* Generate valid ISBN, maybe even from a given starting ISBN.## Source
|
38
43
|
|
39
|
-
Converting a string into a number and some basic processing utilizing a relatable real world example.
|
40
|
-
[https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation](https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation)
|
44
|
+
Converting a string into a number and some basic processing utilizing a relatable real world example. [https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation](https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation)
|
41
45
|
|
42
46
|
## Submitting Incomplete Solutions
|
43
47
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -2,13 +2,14 @@
|
|
2
2
|
|
3
3
|
Determine if a word or phrase is an isogram.
|
4
4
|
|
5
|
-
An isogram (also known as a "nonpattern word") is a word or phrase without a repeating letter.
|
5
|
+
An isogram (also known as a "nonpattern word") is a word or phrase without a repeating letter, however spaces and hyphens are allowed to appear multiple times.
|
6
6
|
|
7
7
|
Examples of isograms:
|
8
8
|
|
9
9
|
- lumberjacks
|
10
10
|
- background
|
11
11
|
- downstream
|
12
|
+
- six-year-old
|
12
13
|
|
13
14
|
The word *isograms*, however, is not an isogram, because the s repeats.
|
14
15
|
## Source
|
@@ -3,19 +3,19 @@
|
|
3
3
|
Given a diagram, determine which plants each child in the kindergarten class is
|
4
4
|
responsible for.
|
5
5
|
|
6
|
-
The kindergarten class is learning about growing plants. The
|
6
|
+
The kindergarten class is learning about growing plants. The teacher
|
7
7
|
thought it would be a good idea to give them actual seeds, plant them in
|
8
8
|
actual dirt, and grow actual plants.
|
9
9
|
|
10
10
|
They've chosen to grow grass, clover, radishes, and violets.
|
11
11
|
|
12
|
-
To this end,
|
13
|
-
|
14
|
-
|
12
|
+
To this end, the children have put little cups along the window sills, and
|
13
|
+
planted one type of plant in each cup, choosing randomly from the available
|
14
|
+
types of seeds.
|
15
15
|
|
16
|
-
```
|
16
|
+
```text
|
17
17
|
[window][window][window]
|
18
|
-
........................ # each dot represents a
|
18
|
+
........................ # each dot represents a cup
|
19
19
|
........................
|
20
20
|
```
|
21
21
|
|
@@ -25,27 +25,27 @@ There are 12 children in the class:
|
|
25
25
|
- Eve, Fred, Ginny, Harriet,
|
26
26
|
- Ileana, Joseph, Kincaid, and Larry.
|
27
27
|
|
28
|
-
Each child gets 4 cups, two on each row.
|
29
|
-
|
28
|
+
Each child gets 4 cups, two on each row. Their teacher assigns cups to
|
29
|
+
the children alphabetically by their names.
|
30
30
|
|
31
31
|
The following diagram represents Alice's plants:
|
32
32
|
|
33
|
-
```
|
33
|
+
```text
|
34
34
|
[window][window][window]
|
35
35
|
VR......................
|
36
36
|
RG......................
|
37
37
|
```
|
38
38
|
|
39
|
-
|
40
|
-
row
|
39
|
+
In the first row, nearest the windows, she has a violet and a radish. In the
|
40
|
+
second row she has a radish and some grass.
|
41
41
|
|
42
42
|
Your program will be given the plants from left-to-right starting with
|
43
43
|
the row nearest the windows. From this, it should be able to determine
|
44
|
-
which plants belong to
|
44
|
+
which plants belong to each student.
|
45
45
|
|
46
46
|
For example, if it's told that the garden looks like so:
|
47
47
|
|
48
|
-
```
|
48
|
+
```text
|
49
49
|
[window][window][window]
|
50
50
|
VRCGVVRVCGGCCGVRGCVCGCGV
|
51
51
|
VRCCCGCRRGVCGCRVVCVGCGCV
|
@@ -4,7 +4,7 @@ Given a year, report if it is a leap year.
|
|
4
4
|
|
5
5
|
The tricky thing here is that a leap year in the Gregorian calendar occurs:
|
6
6
|
|
7
|
-
```
|
7
|
+
```text
|
8
8
|
on every year that is evenly divisible by 4
|
9
9
|
except every year that is evenly divisible by 100
|
10
10
|
unless the year is also evenly divisible by 400
|