trackler 2.2.1.0 → 2.2.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/list-ops/canonical-data.json +27 -11
  4. data/problem-specifications/exercises/rotational-cipher/canonical-data.json +8 -8
  5. data/tracks/clojure/config.json +0 -2
  6. data/tracks/dart/config.json +0 -2
  7. data/tracks/elisp/config.json +0 -2
  8. data/tracks/elixir/config.json +0 -2
  9. data/tracks/erlang/config.json +190 -83
  10. data/tracks/go/config.json +0 -2
  11. data/tracks/groovy/config.json +55 -17
  12. data/tracks/idris/config.json +0 -2
  13. data/tracks/java/POLICIES.md +9 -1
  14. data/tracks/java/exercises/nucleotide-count/src/example/java/{DNA.java → NucleotideCounter.java} +4 -4
  15. data/tracks/java/exercises/nucleotide-count/src/test/java/{NucleotideTest.java → NucleotideCounterTest.java} +21 -21
  16. data/tracks/kotlin/exercises/rotational-cipher/README.md +39 -0
  17. data/tracks/lfe/config.json +0 -2
  18. data/tracks/lisp/config.json +4 -6
  19. data/tracks/lisp/config/exercise_readme.go.tmpl +16 -0
  20. data/tracks/lisp/exercises/allergies/README.md +84 -0
  21. data/tracks/lisp/exercises/anagram/README.md +60 -0
  22. data/tracks/lisp/exercises/atbash-cipher/README.md +81 -0
  23. data/tracks/lisp/exercises/beer-song/README.md +374 -0
  24. data/tracks/lisp/exercises/binary/README.md +82 -0
  25. data/tracks/lisp/exercises/bob/README.md +65 -0
  26. data/tracks/lisp/exercises/crypto-square/README.md +121 -0
  27. data/tracks/lisp/exercises/difference-of-squares/README.md +66 -0
  28. data/tracks/lisp/exercises/etl/README.md +98 -0
  29. data/tracks/lisp/exercises/gigasecond/README.md +58 -0
  30. data/tracks/lisp/exercises/grade-school/README.md +89 -0
  31. data/tracks/lisp/exercises/grains/README.md +81 -0
  32. data/tracks/lisp/exercises/hamming/README.md +89 -0
  33. data/tracks/lisp/exercises/leap/README.md +80 -0
  34. data/tracks/lisp/exercises/meetup/README.md +77 -0
  35. data/tracks/lisp/exercises/nucleotide-count/README.md +80 -0
  36. data/tracks/lisp/exercises/pascals-triangle/README.md +68 -0
  37. data/tracks/lisp/exercises/phone-number/README.md +81 -0
  38. data/tracks/lisp/exercises/prime-factors/README.md +83 -0
  39. data/tracks/lisp/exercises/raindrops/README.md +71 -0
  40. data/tracks/lisp/exercises/rna-transcription/README.md +72 -0
  41. data/tracks/lisp/exercises/robot-name/README.md +69 -0
  42. data/tracks/lisp/exercises/roman-numerals/README.md +96 -0
  43. data/tracks/lisp/exercises/scrabble-score/README.md +91 -0
  44. data/tracks/lisp/exercises/sieve/README.md +81 -0
  45. data/tracks/lisp/exercises/space-age/README.md +71 -0
  46. data/tracks/lisp/exercises/strain/README.md +87 -0
  47. data/tracks/lisp/exercises/triangle/README.md +73 -0
  48. data/tracks/lisp/exercises/trinary/README.md +75 -0
  49. data/tracks/lisp/exercises/word-count/README.md +66 -0
  50. data/tracks/perl5/config.json +0 -2
  51. data/tracks/perl6/config.json +0 -2
  52. data/tracks/php/config.json +0 -2
  53. data/tracks/pony/config.json +33 -0
  54. data/tracks/python/exercises/scale-generator/scale_generator_test.py +1 -1
  55. data/tracks/racket/config.json +0 -2
  56. data/tracks/ruby/config.json +0 -2
  57. data/tracks/rust/.gitignore +0 -1
  58. data/tracks/rust/_test/check-exercises.sh +7 -1
  59. data/tracks/rust/config.json +11 -0
  60. data/tracks/rust/config/maintainers.json +54 -0
  61. data/tracks/rust/exercises/acronym/src/lib.rs +0 -0
  62. data/tracks/rust/exercises/all-your-base/src/lib.rs +35 -0
  63. data/tracks/rust/exercises/allergies/src/lib.rs +0 -0
  64. data/tracks/rust/exercises/alphametics/src/lib.rs +5 -0
  65. data/tracks/rust/exercises/anagram/src/lib.rs +0 -0
  66. data/tracks/rust/exercises/atbash-cipher/src/lib.rs +0 -0
  67. data/tracks/rust/exercises/beer-song/src/lib.rs +0 -0
  68. data/tracks/rust/exercises/bob/src/lib.rs +0 -0
  69. data/tracks/rust/exercises/bowling/src/lib.rs +0 -0
  70. data/tracks/rust/exercises/bracket-push/src/lib.rs +0 -0
  71. data/tracks/rust/exercises/circular-buffer/src/lib.rs +0 -0
  72. data/tracks/rust/exercises/custom-set/src/lib.rs +0 -0
  73. data/tracks/rust/exercises/difference-of-squares/src/lib.rs +0 -0
  74. data/tracks/rust/exercises/dominoes/src/lib.rs +0 -0
  75. data/tracks/rust/exercises/etl/src/lib.rs +0 -0
  76. data/tracks/rust/exercises/forth/src/lib.rs +23 -0
  77. data/tracks/rust/exercises/gigasecond/src/lib.rs +7 -0
  78. data/tracks/rust/exercises/grade-school/src/lib.rs +26 -0
  79. data/tracks/rust/exercises/grains/src/lib.rs +7 -0
  80. data/tracks/rust/exercises/hamming/src/lib.rs +0 -0
  81. data/tracks/rust/exercises/hello-world/src/lib.rs +5 -0
  82. data/tracks/rust/exercises/hexadecimal/src/lib.rs +0 -0
  83. data/tracks/rust/exercises/largest-series-product/src/lib.rs +0 -0
  84. data/tracks/rust/exercises/leap/src/lib.rs +0 -0
  85. data/tracks/rust/exercises/luhn-from/src/lib.rs +0 -0
  86. data/tracks/rust/exercises/luhn-trait/src/lib.rs +0 -0
  87. data/tracks/rust/exercises/luhn/src/lib.rs +0 -0
  88. data/tracks/rust/exercises/minesweeper/src/lib.rs +0 -0
  89. data/tracks/rust/exercises/nucleotide-codons/src/lib.rs +0 -0
  90. data/tracks/rust/exercises/nucleotide-count/src/lib.rs +0 -0
  91. data/tracks/rust/exercises/ocr-numbers/src/lib.rs +7 -0
  92. data/tracks/rust/exercises/pangram/src/lib.rs +0 -0
  93. data/tracks/rust/exercises/parallel-letter-frequency/src/lib.rs +0 -0
  94. data/tracks/rust/exercises/pascals-triangle/src/lib.rs +11 -0
  95. data/tracks/rust/exercises/phone-number/src/lib.rs +0 -0
  96. data/tracks/rust/exercises/pig-latin/src/lib.rs +0 -0
  97. data/tracks/rust/exercises/protein-translation/src/lib.rs +0 -0
  98. data/tracks/rust/exercises/queen-attack/src/lib.rs +0 -0
  99. data/tracks/rust/exercises/raindrops/src/lib.rs +0 -0
  100. data/tracks/rust/exercises/react/src/lib.rs +89 -0
  101. data/tracks/rust/exercises/rectangles/src/lib.rs +0 -0
  102. data/tracks/rust/exercises/rna-transcription/src/lib.rs +0 -0
  103. data/tracks/rust/exercises/robot-name/src/lib.rs +0 -0
  104. data/tracks/rust/exercises/robot-simulator/src/lib.rs +44 -0
  105. data/tracks/rust/exercises/roman-numerals/src/lib.rs +0 -0
  106. data/tracks/rust/exercises/rotational-cipher/src/lib.rs +0 -0
  107. data/tracks/rust/exercises/run-length-encoding/src/lib.rs +0 -0
  108. data/tracks/rust/exercises/say/.meta/hints.md +19 -0
  109. data/tracks/rust/exercises/say/Cargo.lock +4 -0
  110. data/tracks/rust/exercises/say/Cargo.toml +4 -0
  111. data/tracks/rust/exercises/say/README.md +122 -0
  112. data/tracks/rust/exercises/say/example.rs +56 -0
  113. data/tracks/rust/exercises/say/src/lib.rs +4 -0
  114. data/tracks/rust/exercises/say/tests/say.rs +130 -0
  115. data/tracks/rust/exercises/scrabble-score/src/lib.rs +0 -0
  116. data/tracks/rust/exercises/sieve/src/lib.rs +0 -0
  117. data/tracks/rust/exercises/space-age/src/lib.rs +35 -0
  118. data/tracks/rust/exercises/sublist/src/lib.rs +0 -0
  119. data/tracks/rust/exercises/sum-of-multiples/src/lib.rs +0 -0
  120. data/tracks/rust/exercises/tournament/src/lib.rs +0 -0
  121. data/tracks/rust/exercises/triangle/src/lib.rs +0 -0
  122. data/tracks/rust/exercises/variable-length-quantity/src/lib.rs +9 -0
  123. data/tracks/rust/exercises/word-count/src/lib.rs +0 -0
  124. data/tracks/rust/exercises/wordy/src/lib.rs +0 -0
  125. data/tracks/scheme/config.json +0 -2
  126. metadata +45 -4
@@ -0,0 +1,89 @@
1
+ # Grade School
2
+
3
+ Given students' names along with the grade that they are in, create a roster
4
+ for the school.
5
+
6
+ In the end, you should be able to:
7
+
8
+ - Add a student's name to the roster for a grade
9
+ - "Add Jim to grade 2."
10
+ - "OK."
11
+ - Get a list of all students enrolled in a grade
12
+ - "Which students are in grade 2?"
13
+ - "We've only got Jim just now."
14
+ - Get a sorted list of all students in all grades. Grades should sort
15
+ as 1, 2, 3, etc., and students within a grade should be sorted
16
+ alphabetically by name.
17
+ - "Who all is enrolled in school right now?"
18
+ - "Grade 1: Anna, Barb, and Charlie. Grade 2: Alex, Peter, and Zoe.
19
+ Grade 3…"
20
+
21
+ Note that all our students only have one name. (It's a small town, what
22
+ do you want?)
23
+
24
+
25
+ ## For bonus points
26
+
27
+ Did you get the tests passing and the code clean? If you want to, these
28
+ are some additional things you could try:
29
+
30
+ - If you're working in a language with mutable data structures and your
31
+ implementation allows outside code to mutate the school's internal DB
32
+ directly, see if you can prevent this. Feel free to introduce additional
33
+ tests.
34
+
35
+ Then please share your thoughts in a comment on the submission. Did this
36
+ experiment make the code better? Worse? Did you learn anything from it?
37
+
38
+ ## Setup
39
+
40
+ Check out [Exercism Help](http://exercism.io/languages/lisp) for instructions to
41
+ get started writing Common Lisp. That page will explain how to install and setup
42
+ a Lisp implementation and how to run the tests.
43
+
44
+ ## Formatting
45
+
46
+ While Common Lisp doesn't care about indentation and layout of code,
47
+ nor whether you use spaces or tabs, this is an important consideration
48
+ for submissions to exercism.io. Excercism.io's code widget cannot
49
+ handle mixing of tab and space characters well so using only spaces is recommended to make
50
+ the code more readable to the human reviewers. Please review your
51
+ editors settings on how to accomplish this. Below are instructions for
52
+ popular editors for Common Lisp.
53
+
54
+ ### VIM
55
+
56
+ Use the following commands to ensure VIM uses only spaces for
57
+ indentation:
58
+
59
+ ```vimscript
60
+ :set tabstop=2
61
+ :set shiftwidth=2
62
+ :set expandtab
63
+ ```
64
+
65
+ (or as a oneliner `:set tabstop=2 shiftwidth=2 expandtab`). This can
66
+ be added to your `~/.vimrc` file to use it all the time.
67
+
68
+ ### Emacs
69
+
70
+ Emacs is very well suited for editing Common Lisp and has many
71
+ powerful add-on packages available. The only thing that one needs to
72
+ do with a stock emacs to make it work well with exercism.io is to
73
+ evaluate the following code:
74
+
75
+ `(setq indent-tab-mode nil)`
76
+
77
+ This can be placed in your `~/.emacs` (or `~/.emacs.d/init.el`) in
78
+ order to have it set whenever Emacs is launched.
79
+
80
+ One suggested add-on for Emacs and Common Lisp is
81
+ [SLIME](https://github.com/slime/slime) which offers tight integration
82
+ with the REPL; making iterative coding and testing very easy.
83
+
84
+ ## Source
85
+
86
+ A pairing session with Phil Battos at gSchool [http://gschool.it](http://gschool.it)
87
+
88
+ ## Submitting Incomplete Solutions
89
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,81 @@
1
+ # Grains
2
+
3
+ Calculate the number of grains of wheat on a chessboard given that the number
4
+ on each square doubles.
5
+
6
+ There once was a wise servant who saved the life of a prince. The king
7
+ promised to pay whatever the servant could dream up. Knowing that the
8
+ king loved chess, the servant told the king he would like to have grains
9
+ of wheat. One grain on the first square of a chess board. Two grains on
10
+ the next. Four on the third, and so on.
11
+
12
+ There are 64 squares on a chessboard.
13
+
14
+ Write code that shows:
15
+ - how many grains were on each square, and
16
+ - the total number of grains
17
+
18
+
19
+ ## For bonus points
20
+
21
+ Did you get the tests passing and the code clean? If you want to, these
22
+ are some additional things you could try:
23
+
24
+ - Optimize for speed.
25
+ - Optimize for readability.
26
+
27
+ Then please share your thoughts in a comment on the submission. Did this
28
+ experiment make the code better? Worse? Did you learn anything from it?
29
+
30
+ ## Setup
31
+
32
+ Check out [Exercism Help](http://exercism.io/languages/lisp) for instructions to
33
+ get started writing Common Lisp. That page will explain how to install and setup
34
+ a Lisp implementation and how to run the tests.
35
+
36
+ ## Formatting
37
+
38
+ While Common Lisp doesn't care about indentation and layout of code,
39
+ nor whether you use spaces or tabs, this is an important consideration
40
+ for submissions to exercism.io. Excercism.io's code widget cannot
41
+ handle mixing of tab and space characters well so using only spaces is recommended to make
42
+ the code more readable to the human reviewers. Please review your
43
+ editors settings on how to accomplish this. Below are instructions for
44
+ popular editors for Common Lisp.
45
+
46
+ ### VIM
47
+
48
+ Use the following commands to ensure VIM uses only spaces for
49
+ indentation:
50
+
51
+ ```vimscript
52
+ :set tabstop=2
53
+ :set shiftwidth=2
54
+ :set expandtab
55
+ ```
56
+
57
+ (or as a oneliner `:set tabstop=2 shiftwidth=2 expandtab`). This can
58
+ be added to your `~/.vimrc` file to use it all the time.
59
+
60
+ ### Emacs
61
+
62
+ Emacs is very well suited for editing Common Lisp and has many
63
+ powerful add-on packages available. The only thing that one needs to
64
+ do with a stock emacs to make it work well with exercism.io is to
65
+ evaluate the following code:
66
+
67
+ `(setq indent-tab-mode nil)`
68
+
69
+ This can be placed in your `~/.emacs` (or `~/.emacs.d/init.el`) in
70
+ order to have it set whenever Emacs is launched.
71
+
72
+ One suggested add-on for Emacs and Common Lisp is
73
+ [SLIME](https://github.com/slime/slime) which offers tight integration
74
+ with the REPL; making iterative coding and testing very easy.
75
+
76
+ ## Source
77
+
78
+ JavaRanch Cattle Drive, exercise 6 [http://www.javaranch.com/grains.jsp](http://www.javaranch.com/grains.jsp)
79
+
80
+ ## Submitting Incomplete Solutions
81
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,89 @@
1
+ # Hamming
2
+
3
+ Calculate the Hamming difference between two DNA strands.
4
+
5
+ A mutation is simply a mistake that occurs during the creation or
6
+ copying of a nucleic acid, in particular DNA. Because nucleic acids are
7
+ vital to cellular functions, mutations tend to cause a ripple effect
8
+ throughout the cell. Although mutations are technically mistakes, a very
9
+ rare mutation may equip the cell with a beneficial attribute. In fact,
10
+ the macro effects of evolution are attributable by the accumulated
11
+ result of beneficial microscopic mutations over many generations.
12
+
13
+ The simplest and most common type of nucleic acid mutation is a point
14
+ mutation, which replaces one base with another at a single nucleotide.
15
+
16
+ By counting the number of differences between two homologous DNA strands
17
+ taken from different genomes with a common ancestor, we get a measure of
18
+ the minimum number of point mutations that could have occurred on the
19
+ evolutionary path between the two strands.
20
+
21
+ This is called the 'Hamming distance'.
22
+
23
+ It is found by comparing two DNA strands and counting how many of the
24
+ nucleotides are different from their equivalent in the other string.
25
+
26
+ GAGCCTACTAACGGGAT
27
+ CATCGTAATGACGGCCT
28
+ ^ ^ ^ ^ ^ ^^
29
+
30
+ The Hamming distance between these two DNA strands is 7.
31
+
32
+ # Implementation notes
33
+
34
+ The Hamming distance is only defined for sequences of equal length. This means
35
+ that based on the definition, each language could deal with getting sequences
36
+ of equal length differently.
37
+
38
+ ## Setup
39
+
40
+ Check out [Exercism Help](http://exercism.io/languages/lisp) for instructions to
41
+ get started writing Common Lisp. That page will explain how to install and setup
42
+ a Lisp implementation and how to run the tests.
43
+
44
+ ## Formatting
45
+
46
+ While Common Lisp doesn't care about indentation and layout of code,
47
+ nor whether you use spaces or tabs, this is an important consideration
48
+ for submissions to exercism.io. Excercism.io's code widget cannot
49
+ handle mixing of tab and space characters well so using only spaces is recommended to make
50
+ the code more readable to the human reviewers. Please review your
51
+ editors settings on how to accomplish this. Below are instructions for
52
+ popular editors for Common Lisp.
53
+
54
+ ### VIM
55
+
56
+ Use the following commands to ensure VIM uses only spaces for
57
+ indentation:
58
+
59
+ ```vimscript
60
+ :set tabstop=2
61
+ :set shiftwidth=2
62
+ :set expandtab
63
+ ```
64
+
65
+ (or as a oneliner `:set tabstop=2 shiftwidth=2 expandtab`). This can
66
+ be added to your `~/.vimrc` file to use it all the time.
67
+
68
+ ### Emacs
69
+
70
+ Emacs is very well suited for editing Common Lisp and has many
71
+ powerful add-on packages available. The only thing that one needs to
72
+ do with a stock emacs to make it work well with exercism.io is to
73
+ evaluate the following code:
74
+
75
+ `(setq indent-tab-mode nil)`
76
+
77
+ This can be placed in your `~/.emacs` (or `~/.emacs.d/init.el`) in
78
+ order to have it set whenever Emacs is launched.
79
+
80
+ One suggested add-on for Emacs and Common Lisp is
81
+ [SLIME](https://github.com/slime/slime) which offers tight integration
82
+ with the REPL; making iterative coding and testing very easy.
83
+
84
+ ## Source
85
+
86
+ The Calculating Point Mutations problem at Rosalind [http://rosalind.info/problems/hamm/](http://rosalind.info/problems/hamm/)
87
+
88
+ ## Submitting Incomplete Solutions
89
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,80 @@
1
+ # Leap
2
+
3
+ Given a year, report if it is a leap year.
4
+
5
+ The tricky thing here is that a leap year in the Gregorian calendar occurs:
6
+
7
+ ```plain
8
+ on every year that is evenly divisible by 4
9
+ except every year that is evenly divisible by 100
10
+ unless the year is also evenly divisible by 400
11
+ ```
12
+
13
+ For example, 1997 is not a leap year, but 1996 is. 1900 is not a leap
14
+ year, but 2000 is.
15
+
16
+ If your language provides a method in the standard library that does
17
+ this look-up, pretend it doesn't exist and implement it yourself.
18
+
19
+ ## Notes
20
+
21
+ Though our exercise adopts some very simple rules, there is more to
22
+ learn!
23
+
24
+ For a delightful, four minute explanation of the whole leap year
25
+ phenomenon, go watch [this youtube video][video].
26
+
27
+ [video]: http://www.youtube.com/watch?v=xX96xng7sAE
28
+
29
+ ## Setup
30
+
31
+ Check out [Exercism Help](http://exercism.io/languages/lisp) for instructions to
32
+ get started writing Common Lisp. That page will explain how to install and setup
33
+ a Lisp implementation and how to run the tests.
34
+
35
+ ## Formatting
36
+
37
+ While Common Lisp doesn't care about indentation and layout of code,
38
+ nor whether you use spaces or tabs, this is an important consideration
39
+ for submissions to exercism.io. Excercism.io's code widget cannot
40
+ handle mixing of tab and space characters well so using only spaces is recommended to make
41
+ the code more readable to the human reviewers. Please review your
42
+ editors settings on how to accomplish this. Below are instructions for
43
+ popular editors for Common Lisp.
44
+
45
+ ### VIM
46
+
47
+ Use the following commands to ensure VIM uses only spaces for
48
+ indentation:
49
+
50
+ ```vimscript
51
+ :set tabstop=2
52
+ :set shiftwidth=2
53
+ :set expandtab
54
+ ```
55
+
56
+ (or as a oneliner `:set tabstop=2 shiftwidth=2 expandtab`). This can
57
+ be added to your `~/.vimrc` file to use it all the time.
58
+
59
+ ### Emacs
60
+
61
+ Emacs is very well suited for editing Common Lisp and has many
62
+ powerful add-on packages available. The only thing that one needs to
63
+ do with a stock emacs to make it work well with exercism.io is to
64
+ evaluate the following code:
65
+
66
+ `(setq indent-tab-mode nil)`
67
+
68
+ This can be placed in your `~/.emacs` (or `~/.emacs.d/init.el`) in
69
+ order to have it set whenever Emacs is launched.
70
+
71
+ One suggested add-on for Emacs and Common Lisp is
72
+ [SLIME](https://github.com/slime/slime) which offers tight integration
73
+ with the REPL; making iterative coding and testing very easy.
74
+
75
+ ## Source
76
+
77
+ JavaRanch Cattle Drive, exercise 3 [http://www.javaranch.com/leap.jsp](http://www.javaranch.com/leap.jsp)
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,77 @@
1
+ # Meetup
2
+
3
+ Calculate the date of meetups.
4
+
5
+ Typically meetups happen on the same day of the week. In this exercise, you will take
6
+ a description of a meetup date, and return the actual meetup date.
7
+
8
+ Examples of general descriptions are:
9
+
10
+ - the first Monday of January 2017
11
+ - the third Tuesday of January 2017
12
+ - the Wednesteenth of January 2017
13
+ - the last Thursday of January 2017
14
+
15
+ Note that "Monteenth", "Tuesteenth", etc are all made up words. There
16
+ was a meetup whose members realized that there are exactly 7 numbered days in a month that
17
+ end in '-teenth'. Therefore, one is guaranteed that each day of the week
18
+ (Monday, Tuesday, ...) will have exactly one date that is named with '-teenth'
19
+ in every month.
20
+
21
+ Given examples of a meetup dates, each containing a month, day, year, and descriptor
22
+ (first, second, teenth, etc), calculate the date of the actual meetup.
23
+ For example, if given "First Monday of January 2017", the correct meetup date is 2017/1/2
24
+
25
+
26
+ ## Setup
27
+
28
+ Check out [Exercism Help](http://exercism.io/languages/lisp) for instructions to
29
+ get started writing Common Lisp. That page will explain how to install and setup
30
+ a Lisp implementation and how to run the tests.
31
+
32
+ ## Formatting
33
+
34
+ While Common Lisp doesn't care about indentation and layout of code,
35
+ nor whether you use spaces or tabs, this is an important consideration
36
+ for submissions to exercism.io. Excercism.io's code widget cannot
37
+ handle mixing of tab and space characters well so using only spaces is recommended to make
38
+ the code more readable to the human reviewers. Please review your
39
+ editors settings on how to accomplish this. Below are instructions for
40
+ popular editors for Common Lisp.
41
+
42
+ ### VIM
43
+
44
+ Use the following commands to ensure VIM uses only spaces for
45
+ indentation:
46
+
47
+ ```vimscript
48
+ :set tabstop=2
49
+ :set shiftwidth=2
50
+ :set expandtab
51
+ ```
52
+
53
+ (or as a oneliner `:set tabstop=2 shiftwidth=2 expandtab`). This can
54
+ be added to your `~/.vimrc` file to use it all the time.
55
+
56
+ ### Emacs
57
+
58
+ Emacs is very well suited for editing Common Lisp and has many
59
+ powerful add-on packages available. The only thing that one needs to
60
+ do with a stock emacs to make it work well with exercism.io is to
61
+ evaluate the following code:
62
+
63
+ `(setq indent-tab-mode nil)`
64
+
65
+ This can be placed in your `~/.emacs` (or `~/.emacs.d/init.el`) in
66
+ order to have it set whenever Emacs is launched.
67
+
68
+ One suggested add-on for Emacs and Common Lisp is
69
+ [SLIME](https://github.com/slime/slime) which offers tight integration
70
+ with the REPL; making iterative coding and testing very easy.
71
+
72
+ ## Source
73
+
74
+ Jeremy Hinegardner mentioned a Boulder meetup that happens on the Wednesteenth of every month [https://twitter.com/copiousfreetime](https://twitter.com/copiousfreetime)
75
+
76
+ ## Submitting Incomplete Solutions
77
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,80 @@
1
+ # Nucleotide Count
2
+
3
+ Given a DNA string, compute how many times each nucleotide occurs in the string.
4
+
5
+ DNA is represented by an alphabet of the following symbols: 'A', 'C',
6
+ 'G', and 'T'.
7
+
8
+ Each symbol represents a nucleotide, which is a fancy name for the
9
+ particular molecules that happen to make up a large part of DNA.
10
+
11
+ Shortest intro to biochemistry EVAR:
12
+
13
+ - twigs are to birds nests as
14
+ - nucleotides are to DNA and RNA as
15
+ - amino acids are to proteins as
16
+ - sugar is to starch as
17
+ - oh crap lipids
18
+
19
+ I'm not going to talk about lipids because they're crazy complex.
20
+
21
+ So back to nucleotides.
22
+
23
+ DNA contains four types of them: adenine (`A`), cytosine (`C`), guanine
24
+ (`G`), and thymine (`T`).
25
+
26
+ RNA contains a slightly different set of nucleotides, but we don't care
27
+ about that for now.
28
+
29
+ ## Setup
30
+
31
+ Check out [Exercism Help](http://exercism.io/languages/lisp) for instructions to
32
+ get started writing Common Lisp. That page will explain how to install and setup
33
+ a Lisp implementation and how to run the tests.
34
+
35
+ ## Formatting
36
+
37
+ While Common Lisp doesn't care about indentation and layout of code,
38
+ nor whether you use spaces or tabs, this is an important consideration
39
+ for submissions to exercism.io. Excercism.io's code widget cannot
40
+ handle mixing of tab and space characters well so using only spaces is recommended to make
41
+ the code more readable to the human reviewers. Please review your
42
+ editors settings on how to accomplish this. Below are instructions for
43
+ popular editors for Common Lisp.
44
+
45
+ ### VIM
46
+
47
+ Use the following commands to ensure VIM uses only spaces for
48
+ indentation:
49
+
50
+ ```vimscript
51
+ :set tabstop=2
52
+ :set shiftwidth=2
53
+ :set expandtab
54
+ ```
55
+
56
+ (or as a oneliner `:set tabstop=2 shiftwidth=2 expandtab`). This can
57
+ be added to your `~/.vimrc` file to use it all the time.
58
+
59
+ ### Emacs
60
+
61
+ Emacs is very well suited for editing Common Lisp and has many
62
+ powerful add-on packages available. The only thing that one needs to
63
+ do with a stock emacs to make it work well with exercism.io is to
64
+ evaluate the following code:
65
+
66
+ `(setq indent-tab-mode nil)`
67
+
68
+ This can be placed in your `~/.emacs` (or `~/.emacs.d/init.el`) in
69
+ order to have it set whenever Emacs is launched.
70
+
71
+ One suggested add-on for Emacs and Common Lisp is
72
+ [SLIME](https://github.com/slime/slime) which offers tight integration
73
+ with the REPL; making iterative coding and testing very easy.
74
+
75
+ ## Source
76
+
77
+ The Calculating DNA Nucleotides_problem at Rosalind [http://rosalind.info/problems/dna/](http://rosalind.info/problems/dna/)
78
+
79
+ ## Submitting Incomplete Solutions
80
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.