-
-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Generate static exercise README templates
We are working towards making exercises stand-alone. That is to say: no more generating READMEs on the fly. This will give maintainers more control over each individual exercise README, and it will also make some of the backend logic for delivering exercises simpler. The README template uses the Go text/template package, and the default templates generate the same READMEs as we have been generating on the fly. See the documentation in [regenerating exercise readmes][regenerate-docs] for details. The READMEs can be generated at any time using a new 'generate' command in configlet. This command has not yet landed in master or been released, but can be built from source in the generate-readmes branch on [configlet][]. [configlet]: https://github.com/exercism/configlet [regenerate-docs]: https://github.com/exercism/docs/blob/master/maintaining-a-track/regenerating-exercise-readmes.md
- Loading branch information
Katrina Owen
committed
Jul 16, 2017
1 parent
1153877
commit 78cee47
Showing
7 changed files
with
283 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Anagram | ||
|
||
Given a word and a list of possible anagrams, select the correct sublist. | ||
|
||
Given `"listen"` and a list of candidates like `"enlists" "google" | ||
"inlets" "banana"` the program should return a list containing | ||
`"inlets"`. | ||
|
||
## Running Ceylon Tests | ||
|
||
Before tests can be run, your code must be compiled via [`ceylon compile`](https://ceylon-lang.org/documentation/current/reference/tool/ceylon/subcommands/ceylon-compile.html). | ||
|
||
We run tests with the [`ceylon test`](https://ceylon-lang.org/documentation/reference/tool/ceylon/subcommands/ceylon-test.html) command. | ||
|
||
`ceylon test` expects a module name to run the tests on. | ||
In the Ceylon track, each exercise has just a single module. | ||
|
||
Therefore, you can run the tests with: | ||
|
||
```bash | ||
ceylon compile && ceylon test $(basename source/*) | ||
``` | ||
|
||
## Source | ||
|
||
Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup) | ||
|
||
## Submitting Incomplete Solutions | ||
It's possible to submit an incomplete solution so you can see how others have completed the exercise. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Bracket Push | ||
|
||
Given a string containing brackets `[]`, braces `{}` and parentheses `()`, | ||
verify that all the pairs are matched and nested correctly. | ||
|
||
## Running Ceylon Tests | ||
|
||
Before tests can be run, your code must be compiled via [`ceylon compile`](https://ceylon-lang.org/documentation/current/reference/tool/ceylon/subcommands/ceylon-compile.html). | ||
|
||
We run tests with the [`ceylon test`](https://ceylon-lang.org/documentation/reference/tool/ceylon/subcommands/ceylon-test.html) command. | ||
|
||
`ceylon test` expects a module name to run the tests on. | ||
In the Ceylon track, each exercise has just a single module. | ||
|
||
Therefore, you can run the tests with: | ||
|
||
```bash | ||
ceylon compile && ceylon test $(basename source/*) | ||
``` | ||
|
||
## Source | ||
|
||
Ginna Baker | ||
|
||
## Submitting Incomplete Solutions | ||
It's possible to submit an incomplete solution so you can see how others have completed the exercise. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# Hamming | ||
|
||
Calculate the Hamming difference between two DNA strands. | ||
|
||
A mutation is simply a mistake that occurs during the creation or | ||
copying of a nucleic acid, in particular DNA. Because nucleic acids are | ||
vital to cellular functions, mutations tend to cause a ripple effect | ||
throughout the cell. Although mutations are technically mistakes, a very | ||
rare mutation may equip the cell with a beneficial attribute. In fact, | ||
the macro effects of evolution are attributable by the accumulated | ||
result of beneficial microscopic mutations over many generations. | ||
|
||
The simplest and most common type of nucleic acid mutation is a point | ||
mutation, which replaces one base with another at a single nucleotide. | ||
|
||
By counting the number of differences between two homologous DNA strands | ||
taken from different genomes with a common ancestor, we get a measure of | ||
the minimum number of point mutations that could have occurred on the | ||
evolutionary path between the two strands. | ||
|
||
This is called the 'Hamming distance'. | ||
|
||
It is found by comparing two DNA strands and counting how many of the | ||
nucleotides are different from their equivalent in the other string. | ||
|
||
GAGCCTACTAACGGGAT | ||
CATCGTAATGACGGCCT | ||
^ ^ ^ ^ ^ ^^ | ||
|
||
The Hamming distance between these two DNA strands is 7. | ||
|
||
# Implementation notes | ||
|
||
The Hamming distance is only defined for sequences of equal length. This means | ||
that based on the definition, each language could deal with getting sequences | ||
of equal length differently. | ||
|
||
## Running Ceylon Tests | ||
|
||
Before tests can be run, your code must be compiled via [`ceylon compile`](https://ceylon-lang.org/documentation/current/reference/tool/ceylon/subcommands/ceylon-compile.html). | ||
|
||
We run tests with the [`ceylon test`](https://ceylon-lang.org/documentation/reference/tool/ceylon/subcommands/ceylon-test.html) command. | ||
|
||
`ceylon test` expects a module name to run the tests on. | ||
In the Ceylon track, each exercise has just a single module. | ||
|
||
Therefore, you can run the tests with: | ||
|
||
```bash | ||
ceylon compile && ceylon test $(basename source/*) | ||
``` | ||
|
||
## Source | ||
|
||
The Calculating Point Mutations problem at Rosalind [http://rosalind.info/problems/hamm/](http://rosalind.info/problems/hamm/) | ||
|
||
## Submitting Incomplete Solutions | ||
It's possible to submit an incomplete solution so you can see how others have completed the exercise. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# Largest Series Product | ||
|
||
Given a string of digits, calculate the largest product for a contiguous | ||
substring of digits of length n. | ||
|
||
For example, for the input `'1027839564'`, the largest product for a | ||
series of 3 digits is 270 (9 * 5 * 6), and the largest product for a | ||
series of 5 digits is 7560 (7 * 8 * 3 * 9 * 5). | ||
|
||
Note that these series are only required to occupy *adjacent positions* | ||
in the input; the digits need not be *numerically consecutive*. | ||
|
||
For the input `'73167176531330624919225119674426574742355349194934'`, | ||
the largest product for a series of 6 digits is 23520. | ||
|
||
## Running Ceylon Tests | ||
|
||
Before tests can be run, your code must be compiled via [`ceylon compile`](https://ceylon-lang.org/documentation/current/reference/tool/ceylon/subcommands/ceylon-compile.html). | ||
|
||
We run tests with the [`ceylon test`](https://ceylon-lang.org/documentation/reference/tool/ceylon/subcommands/ceylon-test.html) command. | ||
|
||
`ceylon test` expects a module name to run the tests on. | ||
In the Ceylon track, each exercise has just a single module. | ||
|
||
Therefore, you can run the tests with: | ||
|
||
```bash | ||
ceylon compile && ceylon test $(basename source/*) | ||
``` | ||
|
||
## Source | ||
|
||
A variation on Problem 8 at Project Euler [http://projecteuler.net/problem=8](http://projecteuler.net/problem=8) | ||
|
||
## Submitting Incomplete Solutions | ||
It's possible to submit an incomplete solution so you can see how others have completed the exercise. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# Leap | ||
|
||
Given a year, report if it is a leap year. | ||
|
||
The tricky thing here is that a leap year in the Gregorian calendar occurs: | ||
|
||
```plain | ||
on every year that is evenly divisible by 4 | ||
except every year that is evenly divisible by 100 | ||
unless the year is also evenly divisible by 400 | ||
``` | ||
|
||
For example, 1997 is not a leap year, but 1996 is. 1900 is not a leap | ||
year, but 2000 is. | ||
|
||
If your language provides a method in the standard library that does | ||
this look-up, pretend it doesn't exist and implement it yourself. | ||
|
||
## Notes | ||
|
||
Though our exercise adopts some very simple rules, there is more to | ||
learn! | ||
|
||
For a delightful, four minute explanation of the whole leap year | ||
phenomenon, go watch [this youtube video][video]. | ||
|
||
[video]: http://www.youtube.com/watch?v=xX96xng7sAE | ||
|
||
## Running Ceylon Tests | ||
|
||
Before tests can be run, your code must be compiled via [`ceylon compile`](https://ceylon-lang.org/documentation/current/reference/tool/ceylon/subcommands/ceylon-compile.html). | ||
|
||
We run tests with the [`ceylon test`](https://ceylon-lang.org/documentation/reference/tool/ceylon/subcommands/ceylon-test.html) command. | ||
|
||
`ceylon test` expects a module name to run the tests on. | ||
In the Ceylon track, each exercise has just a single module. | ||
|
||
Therefore, you can run the tests with: | ||
|
||
```bash | ||
ceylon compile && ceylon test $(basename source/*) | ||
``` | ||
|
||
## Source | ||
|
||
JavaRanch Cattle Drive, exercise 3 [http://www.javaranch.com/leap.jsp](http://www.javaranch.com/leap.jsp) | ||
|
||
## Submitting Incomplete Solutions | ||
It's possible to submit an incomplete solution so you can see how others have completed the exercise. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# React | ||
|
||
Implement a basic reactive system. | ||
|
||
Reactive programming is a programming paradigm that focuses on how values | ||
are computed in terms of each other to allow a change to one value to | ||
automatically propagate to other values, like in a spreadsheet. | ||
|
||
Implement a basic reactive system with cells with settable values ("input" | ||
cells) and cells with values computed in terms of other cells ("compute" | ||
cells). Implement updates so that when an input value is changed, values | ||
propagate to reach a new stable system state. | ||
|
||
In addition, compute cells should allow for registering change notification | ||
callbacks. Call a cell’s callbacks when the cell’s value in a new stable | ||
state has changed from the previous stable state. | ||
|
||
## Running Ceylon Tests | ||
|
||
Before tests can be run, your code must be compiled via [`ceylon compile`](https://ceylon-lang.org/documentation/current/reference/tool/ceylon/subcommands/ceylon-compile.html). | ||
|
||
We run tests with the [`ceylon test`](https://ceylon-lang.org/documentation/reference/tool/ceylon/subcommands/ceylon-test.html) command. | ||
|
||
`ceylon test` expects a module name to run the tests on. | ||
In the Ceylon track, each exercise has just a single module. | ||
|
||
Therefore, you can run the tests with: | ||
|
||
```bash | ||
ceylon compile && ceylon test $(basename source/*) | ||
``` | ||
|
||
|
||
## Submitting Incomplete Solutions | ||
It's possible to submit an incomplete solution so you can see how others have completed the exercise. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# Sieve | ||
|
||
Use the Sieve of Eratosthenes to find all the primes from 2 up to a given | ||
number. | ||
|
||
The Sieve of Eratosthenes is a simple, ancient algorithm for finding all | ||
prime numbers up to any given limit. It does so by iteratively marking as | ||
composite (i.e. not prime) the multiples of each prime, | ||
starting with the multiples of 2. | ||
|
||
Create your range, starting at two and continuing up to and including the given limit. (i.e. [2, limit]) | ||
|
||
The algorithm consists of repeating the following over and over: | ||
|
||
- take the next available unmarked number in your list (it is prime) | ||
- mark all the multiples of that number (they are not prime) | ||
|
||
Repeat until you have processed each number in your range. | ||
|
||
When the algorithm terminates, all the numbers in the list that have not | ||
been marked are prime. | ||
|
||
The wikipedia article has a useful graphic that explains the algorithm: | ||
https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes | ||
|
||
Notice that this is a very specific algorithm, and the tests don't check | ||
that you've implemented the algorithm, only that you've come up with the | ||
correct list of primes. | ||
|
||
## Running Ceylon Tests | ||
|
||
Before tests can be run, your code must be compiled via [`ceylon compile`](https://ceylon-lang.org/documentation/current/reference/tool/ceylon/subcommands/ceylon-compile.html). | ||
|
||
We run tests with the [`ceylon test`](https://ceylon-lang.org/documentation/reference/tool/ceylon/subcommands/ceylon-test.html) command. | ||
|
||
`ceylon test` expects a module name to run the tests on. | ||
In the Ceylon track, each exercise has just a single module. | ||
|
||
Therefore, you can run the tests with: | ||
|
||
```bash | ||
ceylon compile && ceylon test $(basename source/*) | ||
``` | ||
|
||
## Source | ||
|
||
Sieve of Eratosthenes at Wikipedia [http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes](http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes) | ||
|
||
## Submitting Incomplete Solutions | ||
It's possible to submit an incomplete solution so you can see how others have completed the exercise. |