trackler 2.1.0.18 → 2.1.0.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/common/bin/transfer_blurb_to_description.rb +56 -0
- data/common/exercises/accumulate/description.md +2 -0
- data/common/exercises/acronym/canonical-data.json +1 -7
- data/common/exercises/acronym/description.md +2 -0
- data/common/exercises/all-your-base/description.md +2 -0
- data/common/exercises/allergies/description.md +2 -0
- data/common/exercises/alphametics/description.md +2 -0
- data/common/exercises/anagram/description.md +2 -0
- data/common/exercises/atbash-cipher/description.md +2 -0
- data/common/exercises/bank-account/description.md +2 -0
- data/common/exercises/beer-song/description.md +2 -0
- data/common/exercises/binary/description.md +2 -0
- data/common/exercises/binary-search/description.md +2 -0
- data/common/exercises/binary-search-tree/description.md +2 -0
- data/common/exercises/bob/description.md +2 -0
- data/common/exercises/book-store/description.md +2 -0
- data/common/exercises/bowling/description.md +2 -0
- data/common/exercises/bracket-push/description.md +2 -0
- data/common/exercises/change/description.md +2 -0
- data/common/exercises/circular-buffer/description.md +2 -0
- data/common/exercises/clock/description.md +2 -0
- data/common/exercises/connect/description.md +2 -0
- data/common/exercises/counter/description.md +2 -0
- data/common/exercises/crypto-square/description.md +2 -0
- data/common/exercises/custom-set/description.md +2 -0
- data/common/exercises/diamond/description.md +2 -0
- data/common/exercises/difference-of-squares/description.md +2 -0
- data/common/exercises/diffie-hellman/description.md +2 -0
- data/common/exercises/dominoes/description.md +2 -0
- data/common/exercises/dot-dsl/description.md +2 -0
- data/common/exercises/error-handling/description.md +2 -0
- data/common/exercises/etl/description.md +2 -0
- data/common/exercises/flatten-array/description.md +2 -0
- data/common/exercises/food-chain/description.md +2 -0
- data/common/exercises/forth/description.md +2 -0
- data/common/exercises/gigasecond/description.md +2 -0
- data/common/exercises/go-counting/description.md +2 -0
- data/common/exercises/grade-school/description.md +2 -0
- data/common/exercises/grains/description.md +2 -0
- data/common/exercises/grep/description.md +2 -0
- data/common/exercises/hamming/description.md +2 -0
- data/common/exercises/hangman/description.md +2 -0
- data/common/exercises/hello-world/description.md +2 -0
- data/common/exercises/hexadecimal/description.md +2 -0
- data/common/exercises/house/description.md +2 -0
- data/common/exercises/isogram/description.md +2 -0
- data/common/exercises/kindergarten-garden/description.md +2 -0
- data/common/exercises/largest-series-product/description.md +2 -0
- data/common/exercises/leap/description.md +2 -0
- data/common/exercises/ledger/description.md +2 -0
- data/common/exercises/lens-person/description.md +2 -0
- data/common/exercises/linked-list/description.md +2 -0
- data/common/exercises/list-ops/description.md +2 -0
- data/common/exercises/luhn/description.md +2 -0
- data/common/exercises/markdown/description.md +2 -0
- data/common/exercises/matrix/description.md +2 -0
- data/common/exercises/meetup/description.md +2 -0
- data/common/exercises/minesweeper/description.md +2 -0
- data/common/exercises/nth-prime/description.md +2 -0
- data/common/exercises/nucleotide-codons/description.md +2 -0
- data/common/exercises/nucleotide-count/description.md +2 -0
- data/common/exercises/ocr-numbers/description.md +2 -0
- data/common/exercises/octal/description.md +2 -0
- data/common/exercises/paasio/description.md +2 -0
- data/common/exercises/palindrome-products/description.md +2 -0
- data/common/exercises/parallel-letter-frequency/description.md +2 -0
- data/common/exercises/pascals-triangle/description.md +2 -0
- data/common/exercises/perfect-numbers/description.md +2 -0
- data/common/exercises/phone-number/description.md +2 -0
- data/common/exercises/pig-latin/description.md +2 -0
- data/common/exercises/point-mutations/description.md +2 -0
- data/common/exercises/poker/canonical-data.json +317 -0
- data/common/exercises/poker/description.md +2 -0
- data/common/exercises/pov/description.md +2 -0
- data/common/exercises/prime-factors/description.md +2 -0
- data/common/exercises/protein-translation/description.md +2 -0
- data/common/exercises/proverb/description.md +2 -0
- data/common/exercises/pythagorean-triplet/description.md +2 -0
- data/common/exercises/queen-attack/description.md +2 -0
- data/common/exercises/rail-fence-cipher/description.md +2 -0
- data/common/exercises/raindrops/description.md +2 -0
- data/common/exercises/react/description.md +2 -0
- data/common/exercises/rectangles/description.md +2 -0
- data/common/exercises/rna-transcription/description.md +2 -0
- data/common/exercises/robot-name/description.md +2 -0
- data/common/exercises/robot-simulator/description.md +2 -0
- data/common/exercises/roman-numerals/description.md +2 -0
- data/common/exercises/rotational-cipher/description.md +2 -0
- data/common/exercises/run-length-encoding/description.md +2 -0
- data/common/exercises/saddle-points/description.md +2 -0
- data/common/exercises/say/description.md +2 -0
- data/common/exercises/scale-generator/description.md +2 -0
- data/common/exercises/scrabble-score/description.md +2 -0
- data/common/exercises/secret-handshake/description.md +2 -0
- data/common/exercises/series/description.md +2 -0
- data/common/exercises/sgf-parsing/description.md +2 -0
- data/common/exercises/sieve/description.md +2 -0
- data/common/exercises/simple-cipher/description.md +2 -0
- data/common/exercises/simple-linked-list/description.md +2 -0
- data/common/exercises/space-age/description.md +2 -0
- data/common/exercises/strain/description.md +2 -0
- data/common/exercises/sublist/description.md +2 -0
- data/common/exercises/sum-of-multiples/description.md +2 -0
- data/common/exercises/transpose/description.md +2 -0
- data/common/exercises/tree-building/description.md +2 -0
- data/common/exercises/triangle/description.md +2 -0
- data/common/exercises/trinary/description.md +2 -0
- data/common/exercises/twelve-days/description.md +2 -0
- data/common/exercises/two-bucket/description.md +2 -0
- data/common/exercises/variable-length-quantity/description.md +2 -0
- data/common/exercises/word-count/description.md +2 -0
- data/common/exercises/word-search/description.md +2 -0
- data/common/exercises/wordy/description.md +2 -0
- data/common/exercises/zebra-puzzle/description.md +2 -0
- data/common/exercises/zipper/description.md +2 -0
- data/fixtures/tracks/fake/{hello-world → exercises/hello-world}/example.ext +0 -0
- data/fixtures/tracks/fake/{hello-world → exercises/hello-world}/hello_test.ext +0 -0
- data/fixtures/tracks/fake/{hello-world → exercises/hello-world}/world_test.ext +0 -0
- data/fixtures/tracks/fake/{one → exercises/one}/.dot +0 -0
- data/fixtures/tracks/fake/{one → exercises/one}/Fakefile +0 -0
- data/fixtures/tracks/fake/{one → exercises/one}/HINTS.md +0 -0
- data/fixtures/tracks/fake/{one → exercises/one}/example.ext +0 -0
- data/fixtures/tracks/fake/{one → exercises/one}/one_test.ext +0 -0
- data/fixtures/tracks/fake/{one → exercises/one}/sub/src/ExampleFile.ext +0 -0
- data/fixtures/tracks/fake/{one → exercises/one}/sub/src/stubfile.ext +0 -0
- data/fixtures/tracks/fake/{three → exercises/three}/example.ext +0 -0
- data/fixtures/tracks/fake/{three → exercises/three}/three_test.ext +0 -0
- data/fixtures/tracks/fake/{two → exercises/two}/example.ext +0 -0
- data/fixtures/tracks/fake/{two → exercises/two}/two_test.ext +0 -0
- data/lib/trackler/implementation.rb +29 -35
- data/lib/trackler/implementations.rb +7 -1
- data/lib/trackler/track.rb +4 -3
- data/lib/trackler/version.rb +1 -1
- data/lib/trackler.rb +1 -1
- data/tracks/ecmascript/.github/stale.yml +6 -0
- data/tracks/ecmascript/README.md +17 -9
- data/tracks/go/README.md +7 -4
- data/tracks/go/config.json +5 -2
- data/tracks/go/exercises/atbash-cipher/.meta/gen.go +0 -2
- data/tracks/go/exercises/bob/.meta/gen.go +0 -2
- data/tracks/go/exercises/bowling/.meta/gen.go +0 -2
- data/tracks/go/exercises/bracket-push/.meta/gen.go +0 -2
- data/tracks/go/exercises/change/.meta/gen.go +0 -2
- data/tracks/go/exercises/clock/.meta/gen.go +0 -2
- data/tracks/go/exercises/clock/example_clock_test.go +34 -20
- data/tracks/go/exercises/connect/.meta/gen.go +0 -2
- data/tracks/go/exercises/custom-set/.meta/gen.go +0 -2
- data/tracks/go/exercises/forth/.meta/gen.go +0 -2
- data/tracks/go/exercises/gigasecond/.meta/gen.go +0 -2
- data/tracks/go/exercises/hamming/.meta/gen.go +0 -2
- data/tracks/go/exercises/largest-series-product/.meta/gen.go +0 -2
- data/tracks/go/exercises/leap/.meta/gen.go +0 -2
- data/tracks/go/exercises/luhn/.meta/gen.go +0 -2
- data/tracks/go/exercises/meetup/.meta/gen.go +0 -2
- data/tracks/go/exercises/phone-number/.meta/gen.go +0 -2
- data/tracks/go/exercises/raindrops/.meta/gen.go +0 -2
- data/tracks/go/exercises/rna-transcription/.meta/gen.go +0 -2
- data/tracks/go/exercises/roman-numerals/.meta/gen.go +0 -2
- data/tracks/go/exercises/scrabble-score/.meta/gen.go +0 -2
- data/tracks/go/exercises/transpose/.meta/gen.go +0 -2
- data/tracks/go/exercises/variable-length-quantity/.meta/gen.go +113 -0
- data/tracks/go/exercises/variable-length-quantity/cases_test.go +161 -0
- data/tracks/go/exercises/variable-length-quantity/example.go +54 -11
- data/tracks/go/exercises/variable-length-quantity/variable_length_quantity_test.go +19 -31
- data/tracks/go/exercises/word-count/.meta/gen.go +0 -2
- data/tracks/java/exercises/acronym/src/test/java/AcronymTest.java +3 -16
- data/tracks/java/exercises/diamond/src/test/java/DiamondPrinterTest.java +1 -1
- data/tracks/java/exercises/hello-world/HINT.md +7 -0
- data/tracks/java/exercises/largest-series-product/src/test/java/LargestSeriesProductCalculatorTest.java +1 -1
- data/tracks/java/exercises/linked-list/src/test/java/DoublyLinkedListTest.java +48 -38
- data/tracks/java/exercises/luhn/src/main/java/LuhnValidator.java +7 -0
- data/tracks/java/exercises/minesweeper/src/test/java/MinesweeperBoardTest.java +1 -1
- data/tracks/java/exercises/perfect-numbers/src/test/java/NaturalNumberTest.java +1 -1
- data/tracks/java/exercises/queen-attack/src/test/java/QueenAttackCalculatorTest.java +1 -1
- data/tracks/java/exercises/rectangles/src/test/java/RectangleCounterTest.java +1 -1
- data/tracks/java/exercises/secret-handshake/src/main/java/HandshakeCalculator.java +5 -1
- data/tracks/java/exercises/sum-of-multiples/src/main/java/SumOfMultiples.java +10 -2
- data/tracks/java/exercises/triangle/src/example/java/Triangle.java +5 -5
- data/tracks/java/exercises/triangle/src/example/java/TriangleException.java +1 -3
- data/tracks/java/exercises/triangle/src/main/java/Triangle.java +11 -0
- data/tracks/java/exercises/triangle/src/main/java/TriangleException.java +1 -3
- data/tracks/javascript/.github/stale.yml +6 -0
- data/tracks/javascript/config.json +14 -0
- data/tracks/kotlin/docs/INSTALLATION.md +1 -1
- data/tracks/lisp/docs/INSTALLATION.md +1 -0
- data/tracks/perl6/README.md +9 -4
- data/tracks/perl6/config.json +5 -0
- data/tracks/perl6/exercises/luhn/Example.pm6 +15 -0
- data/tracks/perl6/exercises/luhn/Luhn.pm6 +4 -0
- data/tracks/perl6/exercises/luhn/example.yaml +6 -0
- data/tracks/perl6/exercises/luhn/luhn.t +122 -0
- data/tracks/python/exercises/acronym/acronym_test.py +1 -4
- data/tracks/r/exercises/hamming/test_hamming.R +15 -14
- data/tracks/ruby/lib/generator/command_line/generator_optparser.rb +3 -1
- data/tracks/ruby/lib/generator/exercise_case/assertion.rb +33 -5
- data/tracks/ruby/lib/generator/exercise_case/case_helpers.rb +39 -0
- data/tracks/ruby/lib/generator/exercise_case.rb +3 -37
- data/tracks/ruby/lib/generator/template_values.rb +2 -0
- data/tracks/ruby/test/generator/command_line/generator_optparser_test.rb +11 -2
- data/tracks/ruby/test/generator/exercise_case/case_helpers_test.rb +43 -0
- data/tracks/ruby/test/generator/underscore_test.rb +4 -0
- data/tracks/scala/config.json +10 -0
- data/tracks/scala/exercises/beer-song/build.sbt +3 -0
- data/tracks/scala/exercises/beer-song/example.scala +11 -0
- data/tracks/{java/exercises/luhn/src/main/java → scala/exercises/beer-song/src/main/scala}/.keep +0 -0
- data/tracks/scala/exercises/beer-song/src/test/scala/BeerSongTest.scala +52 -0
- data/tracks/vimscript/.travis.yml +13 -2
- data/tracks/vimscript/TRACK_HINTS.md +67 -0
- data/tracks/vimscript/bin/ci +21 -0
- data/tracks/vimscript/config.json +22 -8
- data/tracks/vimscript/docs/ABOUT.md +44 -0
- data/tracks/vimscript/docs/INSTALLATION.md +55 -0
- data/tracks/vimscript/docs/LEARNING.md +16 -0
- data/tracks/vimscript/docs/RESOURCES.md +24 -0
- data/tracks/vimscript/docs/TESTS.md +67 -0
- data/tracks/vimscript/exercises/bob/bob.vader +63 -0
- data/tracks/vimscript/exercises/bob/bob.vim +8 -0
- data/tracks/vimscript/exercises/bob/example.vim +23 -0
- data/tracks/vimscript/exercises/hamming/example.vim +18 -0
- data/tracks/vimscript/exercises/hamming/hamming.vader +20 -0
- data/tracks/vimscript/exercises/hamming/hamming.vim +13 -0
- data/tracks/vimscript/exercises/hello-world/example.vim +4 -0
- data/tracks/vimscript/exercises/hello-world/hello_world.vader +8 -0
- data/tracks/vimscript/exercises/hello-world/hello_world.vim +20 -0
- data/tracks/vimscript/exercises/leap/example.vim +3 -0
- data/tracks/vimscript/exercises/leap/leap.vader +11 -0
- data/tracks/vimscript/exercises/leap/leap.vim +9 -0
- metadata +47 -18
- data/tracks/vimscript/SETUP.md +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d6ac1a44061082046f6a5d3b58fd73dfebf3fbd
|
4
|
+
data.tar.gz: 96a6b24af274b1524bfc6264aabf63f6fb3d9bb8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e5f615e31da2f867efd6f40d40e526ca1497c909670527e226bf3c21568ac232845a36bd293c7bc3acb537adff990c83c9316bae4890361b3619629ba81046c
|
7
|
+
data.tar.gz: 1ccb4b4aa381b721b6acf5337ded3154970e7c00f80011db5c9212ed73c6e37c67e5461a1101a004fd5c82da8d447ea1a3d942148d5b6074058b73616da5a6f1
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# This is a temporary file which exists to support the x-common issue #767
|
4
|
+
# [Make description.md self contained.](# https://github.com/exercism/x-common/issues/767)
|
5
|
+
#
|
6
|
+
# The exercise description given in description.md should be complete and self
|
7
|
+
# contained, and not require the addition of the blurb to make sense.
|
8
|
+
#
|
9
|
+
# This script copies the current blurb into description.md for all exercises.
|
10
|
+
#
|
11
|
+
# It will NOT update the description if it already begins with the blurb.
|
12
|
+
# Thus this script will not add multiple blurbs if it is run multiple times.
|
13
|
+
|
14
|
+
require 'yaml'
|
15
|
+
|
16
|
+
class Exercise
|
17
|
+
attr_reader :path
|
18
|
+
def initialize(path)
|
19
|
+
@path = path
|
20
|
+
end
|
21
|
+
|
22
|
+
def update_description
|
23
|
+
unless description.start_with?(blurb)
|
24
|
+
complete_description = format("%s\n\n%s", blurb, description)
|
25
|
+
File.write(description_filename, complete_description)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def blurb
|
32
|
+
metadata['blurb']
|
33
|
+
end
|
34
|
+
|
35
|
+
def metadata
|
36
|
+
metadata_filename = File.join(path, 'metadata.yml')
|
37
|
+
YAML.load_file(metadata_filename)
|
38
|
+
end
|
39
|
+
|
40
|
+
def description
|
41
|
+
File.read(description_filename)
|
42
|
+
end
|
43
|
+
|
44
|
+
def description_filename
|
45
|
+
File.join(path, 'description.md')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
exercises = Dir.glob('exercises/*').map {|path| Exercise.new(path)}
|
51
|
+
|
52
|
+
updated = exercises.count do |exercise|
|
53
|
+
exercise.update_description
|
54
|
+
end
|
55
|
+
|
56
|
+
puts "#{updated}/#{exercises.count} exercises updated"
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Implement the `accumulate` operation, which, given a collection and an operation to perform on each element of the collection, returns a new collection containing the result of applying that operation to each element of the input collection.
|
2
|
+
|
1
3
|
Given the collection of numbers:
|
2
4
|
|
3
5
|
- 1, 2, 3, 4, 5
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"exercise": "acronym",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.1.0",
|
4
4
|
"cases": [
|
5
5
|
{
|
6
6
|
"description": "Abbreviate a phrase",
|
@@ -17,12 +17,6 @@
|
|
17
17
|
"phrase": "Ruby on Rails",
|
18
18
|
"expected": "ROR"
|
19
19
|
},
|
20
|
-
{
|
21
|
-
"description": "camelcase",
|
22
|
-
"property": "abbreviate",
|
23
|
-
"phrase": "HyperText Markup Language",
|
24
|
-
"expected": "HTML"
|
25
|
-
},
|
26
20
|
{
|
27
21
|
"description": "punctuation",
|
28
22
|
"property": "abbreviate",
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
|
2
|
+
|
1
3
|
An allergy test produces a single numeric score which contains the
|
2
4
|
information about all the allergies the person has (that they were
|
3
5
|
tested for).
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Create an implementation of the atbash cipher, an ancient encryption system created in the Middle East.
|
2
|
+
|
1
3
|
The Atbash cipher is a simple substitution cipher that relies on
|
2
4
|
transposing all the letters in the alphabet such that the resulting
|
3
5
|
alphabet is backwards. The first letter is replaced with the last
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
|
2
|
+
|
1
3
|
A bank account can be accessed in multiple ways. Clients can make
|
2
4
|
deposits and withdrawals using the internet, mobile phones, etc. Shops
|
3
5
|
can charge against the account.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Convert a binary number, represented as a string (e.g. '101010'), to its decimal equivalent using first principles.
|
2
|
+
|
1
3
|
Implement binary to decimal conversion. Given a binary input
|
2
4
|
string, your program should produce a decimal output. The
|
3
5
|
program should handle invalid inputs.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
To try and encourage more sales of different books from a popular 5 book series, a bookshop has decided to offer discounts of multiple-book purchases.
|
2
|
+
|
1
3
|
To try and encourage more sales of the 5 different books
|
2
4
|
they sell of a popular series, a bookshop has decided to
|
3
5
|
offer discounts of multi-book purchases.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
We are going to do the `Transform` step of an Extract-Transform-Load.
|
2
|
+
|
1
3
|
### ETL
|
2
4
|
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
|
3
5
|
we're going to migrate this."
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
|
2
|
+
|
1
3
|
There once was a wise servant who saved the life of a prince. The king
|
2
4
|
promised to pay whatever the servant could dream up. Knowing that the
|
3
5
|
king loved chess, the servant told the king he would like to have grains
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Search a file for lines matching a regular expression pattern. Return the line number and contents of each matching line.
|
2
|
+
|
1
3
|
The Unix [`grep`](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html) command can be used to search for lines in one or more files
|
2
4
|
that match a user-provided search query (known as the *pattern*).
|
3
5
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Calculate the Hamming difference between two DNA strands.
|
2
|
+
|
1
3
|
A mutation is simply a mistake that occurs during the creation or
|
2
4
|
copying of a nucleic acid, in particular DNA. Because nucleic acids are
|
3
5
|
vital to cellular functions, mutations tend to cause a ripple effect
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Convert a hexadecimal number, represented as a string (e.g. "10af8c"), to its decimal equivalent using first principles (i.e. no, you may not use built-in or external libraries to accomplish the conversion).
|
2
|
+
|
1
3
|
On the web we use hexadecimal to represent colors, e.g. green: 008000,
|
2
4
|
teal: 008080, navy: 000080).
|
3
5
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Output the nursery rhyme 'This is the House that Jack Built'.
|
2
|
+
|
1
3
|
> [The] process of placing a phrase of clause within another phrase of
|
2
4
|
> clause is called embedding. It is through the processes of recursion
|
3
5
|
> and embedding that we are able to take a finite number of forms (words
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Given a diagram, determine which plants each child in the kindergarten class is responsible for.
|
2
|
+
|
1
3
|
The kindergarten class is learning about growing plants. The teachers
|
2
4
|
thought it would be a good idea to give them actual seeds, plant them in
|
3
5
|
actual dirt, and grow actual plants.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
|
2
|
+
|
1
3
|
For example, for the input `'1027839564'`, the largest product for a
|
2
4
|
series of 3 digits is 270 (9 * 5 * 6), and the largest product for a
|
3
5
|
series of 5 digits is 7560 (7 * 8 * 3 * 9 * 5).
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Use lenses to update nested records (specific to languages with immutable data).
|
2
|
+
|
1
3
|
Updating fields of nested records is kind of annoying in Haskell. One solution
|
2
4
|
is to use [lenses](https://wiki.haskell.org/Lens). Implement several record
|
3
5
|
accessing functions using lenses, you may use any library you want. The test
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Given a number determine whether or not it is valid per the Luhn formula.
|
2
|
+
|
1
3
|
The [Luhn algorithm](https://en.wikipedia.org/wiki/Luhn_algorithm) is
|
2
4
|
a simple checksum formula used to validate a variety of identification
|
3
5
|
numbers, such as credit card numbers and Canadian Social Insurance
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Write a function that returns the name of an amino acid a particular codon, possibly using shorthand, encodes for.
|
2
|
+
|
1
3
|
In DNA sequences of 3 nucleotides, called codons, encode for amino acids. Often
|
2
4
|
several codons encode for the same amino acid. The International Union of Pure
|
3
5
|
and Applied Chemistry developed a shorthand system for designating groups of
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Convert a octal number, represented as a string (e.g. '1735263'), to its decimal equivalent using first principles (i.e. no, you may not use built-in or external libraries to accomplish the conversion).
|
2
|
+
|
1
3
|
Implement octal to decimal conversion. Given an octal input
|
2
4
|
string, your program should produce a decimal output.
|
3
5
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Count the frequency of letters in texts using parallel computation.
|
2
|
+
|
1
3
|
Parallelism is about doing things in parallel that can also be done
|
2
4
|
sequentially. A common example is counting the frequency of letters.
|
3
5
|
Create a function that returns the total frequency of each letter in a
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for natural numbers.
|
2
|
+
|
1
3
|
The Greek mathematician [Nicomachus](https://en.wikipedia.org/wiki/Nicomachus) devised a classification scheme for natural numbers, identifying each as belonging uniquely to the categories of **perfect**, **abundant**, or **deficient** based on their [aliquot sum](https://en.wikipedia.org/wiki/Aliquot_sum). The aliquot sum is defined as the sum of the factors of a number not including the number itself. For example, the aliquot sum of 15 is (1 + 3 + 5) = 9
|
2
4
|
|
3
5
|
- **Perfect**: aliquot sum = number
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Clean up user-entered phone numbers so that they can be sent SMS messages.
|
2
|
+
|
1
3
|
The **North American Numbering Plan (NANP)** is a telephone numbering system used by many countries in North America like the United States, Canada or Bermuda. All NANP-countries share the same international country code `1`.
|
2
4
|
|
3
5
|
NANP numbers are ten-digit numbers consisting of a three-digit Numbering Plan Area code, commonly known as *area code*, followed by a seven-digit local number. The first three digits of the local number represent the *exchange code*, followed by the unique four-digit number which is the *subscriber number*.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Implement a program that translates from English to Pig Latin.
|
2
|
+
|
1
3
|
Pig Latin is a made-up children's language that's intended to be
|
2
4
|
confusing. It obeys a few simple rules (below), but when it's spoken
|
3
5
|
quickly it's really difficult for non-children (and non-native speakers)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
Calculate the Hamming difference between two DNA strands.
|
2
|
+
|
1
3
|
A mutation is simply a mistake that occurs during the creation or
|
2
4
|
copying of a nucleic acid, in particular DNA. Because nucleic acids are
|
3
5
|
vital to cellular functions, mutations tend to cause a ripple effect
|