Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Exercism

Lean

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Get fluent in Lean by solving 87 exercises. And then level up with mentoring from our world-class team.

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Leap
    • Determine whether a given year is a leap year.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Two-Fer
    • Create a sentence of the form "One for X, one for me.".
  • Acronym
    • Convert a long phrase to its acronym.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Eliud's Eggs
    • Help Eliud count the number of eggs in her chicken coop by counting the number of 1 bits in a binary representation.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • High Scores
    • Manage a player's High Score list.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Pangram
    • Determine if a sentence is a pangram.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • Reverse String
    • Reverse a given string.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Binary Search
    • Implement a binary search algorithm.
  • Flatten Array
    • Take a nested list and return a single list with all values except nil/null.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Line Up
    • Help lining up customers at Yaʻqūb's Deli.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Square Root
    • Given a natural radicand, return its square root.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • ISBN Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Clock
    • Implement a clock that handles times without dates.
  • Conway's Game of Life
    • Implement Conway's Game of Life.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Meetup
    • Calculate the date of meetups.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Relative Distance
    • Given a family tree, calculate the degree of separation.
  • Transpose
    • Take input text and output it transposed.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Camicia
    • Simulate the card game and determine whether the match ends or enters an infinite loop.
  • Complex Numbers
    • Implement complex numbers.
  • Knapsack
    • Given a knapsack that can only carry a certain weight, determine which items to put in the knapsack in order to maximize their combined value.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • Parallel Letter Frequency
    • Count the frequency of letters in texts using parallel computation.
  • Rail Fence Cipher
    • Implement encoding and decoding for the rail fence cipher.
  • Book Store
    • 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.
  • Change
    • Correctly determine change to be given using the least number of coins.
  • Custom Set
    • Create a custom set type.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Rectangles
    • Count the rectangles in an ASCII diagram.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Two Bucket
    • Given two buckets of different size, demonstrate how to measure an exact number of liters.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Bank Account
    • Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
  • Connect
    • Compute the result for a game of Hex / Polygon.
  • Dominoes
    • Make a chain of dominoes.
  • Grep
    • Search a file for lines matching a regular expression pattern. Return the line number and contents of each matching line.
  • Linked List
    • Implement a doubly linked list.
  • Rational Numbers
    • Implement rational numbers.
  • Satellite
    • Rebuild binary trees from pre-order and in-order traversals.
  • Forth
    • Implement an evaluator for a very simple subset of Forth.
  • SGF Parsing
    • Parsing a Smart Game Format string.
  • Zebra Puzzle
    • Solve the zebra puzzle.

Reviews

Start your review of Lean

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.