When you're logged in, you can say exercism fetch rust to get the next available exercise on the track.

Every time you submit a solution to an exercise, you will get the next in line the next time you fetch.

If you want to try a specific exercise, you can always fetch it directly (commands are listed below).

The exercises are ordered roughly in order of difficulty.

Available Exercises

  • Hello World The classical introductory exercise. Just say "Hello, World!"
  • Gigasecond Calculate the moment when someone has lived for 10^9 seconds.
  • Leap Given a year, report if it is a leap year.
  • Raindrops Convert a number to a string, the contents of which depend on the number's factors.
  • Nth Prime Given a number n, determine what the nth prime is.
  • Bob Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Beer Song Produce the lyrics to that beloved classic, that field-trip favorite: 99 Bottles of Beer on the Wall.
  • Proverb For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.
  • Difference Of Squares Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Sum Of Multiples Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Grains Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Pythagorean Triplet There exists exactly one Pythagorean triplet for which a + b + c = 1000. Find the product a * b * c.
  • Prime Factors Compute the prime factors of a given natural number.
  • Say Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Run Length Encoding Implement run-length encoding and decoding.
  • Clock Implement a clock that handles times without dates.
  • Hamming Calculate the Hamming difference between two DNA strands.
  • Pascals Triangle Compute Pascal's triangle up to a given number of rows.
  • Scrabble Score Given a word, compute the scrabble score for that word.
  • Pangram Determine if a sentence is a pangram.
  • Nucleotide Count Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Luhn Given a number determine whether or not it is valid per the Luhn formula.
  • Largest Series Product Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Word Count Given a phrase, count the occurrences of each word in that phrase.
  • Atbash Cipher Create an implementation of the atbash cipher, an ancient encryption system created in the Middle East.
  • Rotational Cipher Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Etl We are going to do the `Transform` step of an Extract-Transform-Load.
  • Accumulate 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.
  • Acronym Convert a long phrase to its acronym
  • Sieve Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Rna Transcription Given a DNA strand, return its RNA complement (per RNA transcription).
  • Triangle Determine if a triangle is equilateral, isosceles, or scalene.
  • Roman Numerals Write a function to convert from normal numbers to Roman Numerals.
  • All Your Base Convert a number, represented as a sequence of digits in one base, to any other base.
  • Grade School Given students' names along with the grade that they are in, create a roster for the school
  • Robot Simulator Write a robot simulator.
  • Bracket Push Make sure the brackets and braces all match.
  • Luhn From Luhn: Using the From Trait
  • Queen Attack Given the position of two queens on a chess board, indicate whether or not they are positioned so that they can attack each other.
  • Bowling Score a bowling game
  • Sublist Write a function to determine if a list is a sublist of another list.
  • Space Age Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Luhn Trait Luhn: Using a Custom Trait
  • Allergies Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Variable Length Quantity Implement variable length quantity encoding and decoding.
  • Phone Number Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Wordy Parse and evaluate simple math word problems returning the answer as an integer.
  • Tournament Tally the results of a small football competition.
  • Custom Set Create a custom set type.
  • Alphametics Write a function to solve alphametics puzzles.
  • Pig Latin Implement a program that translates from English to Pig Latin
  • Anagram Given a word and a list of possible anagrams, select the correct sublist.
  • Protein Translation Translate RNA sequences into proteins.
  • Robot Name Manage robot factory settings.
  • Ocr Numbers Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled.
  • Minesweeper Add the numbers to a minesweeper board
  • Dominoes Make a chain of dominoes.
  • Parallel Letter Frequency Count the frequency of letters in texts using parallel computation.
  • Rectangles Count the rectangles in an ASCII diagram.
  • Forth Implement an evaluator for a very simple subset of Forth
  • Circular Buffer A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • React Implement a basic reactive system.