/rust-koans

Koans for the Rust programming language

Primary LanguageRustMIT LicenseMIT

Rust Koans

The Structure

The koans are broken out into areas by file, arrays are covered in arrays.rs, booleans are introduced in boolean.rs, etc. They are presented in order in the path_to_enlightenment.rs file.

Each koan builds up your knowledge of Rust and builds upon itself. By following the failures and errors presented, you will know what to work on next. As you finish one koan file, the next will be added to path_to_enlightenment.rs.

Some koans simply need to have the correct answer substituted for an incorrect one. Some, however, require you to supply your own answer. If you see the __ (a double underscore) listed, it is a hint to you to supply your own code in order to make it work correctly.

Installing Rust

If you do not have Rust setup, please visit rust-lang.org for operating specific instructions. In order to run the koans you need Rust installed. To check your installations simply type:

*nix platforms from any terminal window:

$ rustc --version

Currently, a Rust version of 1.3.0 or higher is recommended.

The Path to Englightenment

In order to run the koans, Clone this repository, and from the root folder simply run:

$ cargo run

This will generate the path_to_enlightenment.rs file and populate it with the first test in the list. After supplying an answer for the first test case, entering cargo run again will continue you on your path.

Red, Green, Refactor

Red, Green, Refactor

In test-driven development the mantra has always been red, green, refactor. Write a failing test and run it (red), make the test pass (green), then look at the code and consider if you can make it any better (refactor).

While walking the path to Rust enlightenment you will need to run the koan and see it fail (red), make the test pass (green), then take a moment and reflect upon the test to see what it is teaching you and improve the code to better communicate its intent (refactor).

Other Resources

The Rust Language https://www.rust-lang.org/
Rust Playground https://play.rust-lang.org/
The Book (Rust docs) https://doc.rust-lang.org/book/