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

Exercism

Elm

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Elm describes itself as a "delightful language for reliable webapps". It aims at producing web applications with great performances and no runtime exception. Concretely, it is a functional programming language compiling to JavaScript. Its syntax and features originated from the ML family of languages, such as Haskell, but with .

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Lucian's Luscious Lasagna
    • Learn the basics of Elm by cooking Lucian's Luscious Lasagna
  • Betty's Bike Shop
    • Continue learning the basics of Elm by helping Betty to display her bikes prices
  • Annalyn's Infiltration
    • Learn usage of Booleans while helping Annalyn rescue her friend
  • Tracks on Tracks on Tracks
    • Learn usage of List while keeping track of programming languages to learn on Exercism
  • Bandwagoner
    • Learn usage of Records while keeping a history of basketball statistics
  • Valentines Day
    • Learn usage of Custom Types while deciding what to do for Valentines Day
  • Tisbury Treasure Hunt
    • Learn usage of Tuples by designing a pirate treasure game
  • Role Playing Game
    • Learn usage of Maybe by designing game mechanics
  • Go
    • Learn usage of Result by applying the rules of the game of Go
  • Ticket, Please!
    • Learn about pattern matching by improving your ticketing system.
  • Mario's marvellous lasagna
    • Learn the Elm `let` expression by cooking Mario's Marvellous Lasagna
  • Top Scorers
    • Learn usage of Dict by keeping track of how many goals players have scored.
  • Paola's Prestigious Pizza
    • Learn the basics of parsing by processing the menu of Paola's Prestigious Pizza
  • Paula's Palindromes
    • Learn the basics of Elm web applications by checking if a string is a palindrome
  • Monster Attack
    • Learn partial application and function composition in Elm by attacking a monster
  • Blorkemon Cards
    • Learn comparisons by playing a vintage trading card game
  • Gotta Snatch'Em All
    • Learn to use sets by playing a vintage trading card game
  • Treasure Chest
    • Learn how to create and use Elm code that is generic by creating a Treasure Chest
  • Secure Treasure Chest
    • Learn how to create and use Opaque Types in Elm by creating a Treasure Chest
  • Treasure Factory
    • Learn the phantom types technique by creating treasure chests for your evil dungeons
  • Magician in training
    • Help Elyse with her Enchantments and learn about arrays in the process.
  • Maze Maker
    • Learn to generate random values in Elm
  • Squeaky Clean
    • Learn about characters and strings by cleaning strings.
  • Secrets
    • Learn about bit manipulation by writing the software for an encryption device.
  • GitHup API
    • Learn to decode and encode JSON values with Elm
  • Kuroko's Clock
    • Learn to format dates and times in different time zones and locales
  • Bird Count
    • Learn about recursion by keeping track of how many birds visit your garden each day.
  • Piper's Pie
    • Learn to write tail-recursive functions in Elm
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • 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.
  • Leap
    • Determine whether a given year is a leap year.
  • Resistor Color
    • Convert a resistor band's color to its numeric representation.
  • Resistor Color Duo
    • Convert color codes, as used on resistors, to a numeric value.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • 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.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • Reverse String
    • Reverse a given string.
  • Robot Simulator
    • Write a robot simulator.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • Pangram
    • Determine if a sentence is a pangram.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Square Root
    • Given a natural radicand, return its square root.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • Acronym
    • Convert a long phrase to its acronym.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Binary Search
    • Implement a binary search algorithm.
  • List Ops
    • Implement basic list operations.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Strain
    • Implement the `keep` and `discard` operation on collections.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Transpose
    • Take input text and output it transposed.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Bowling
    • Score a bowling game.
  • Complex Numbers
    • Implement complex numbers.
  • SGF Parsing
    • Parsing a Smart Game Format string.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Custom Set
    • Create a custom set type.
  • Two Bucket
    • Given two buckets of different size, demonstrate how to measure an exact number of liters.
  • Zebra Puzzle
    • Solve the zebra puzzle.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • Simple Cipher
    • Implement the Vigenère cipher, a simple substitution cipher.
  • REST API
    • Implement a RESTful API for tracking IOUs.
  • Flower Field
    • Mark all the flowers in a garden.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Relative Distance
    • Given a family tree, calculate the degree of separation.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Meetup
    • Calculate the date of meetups.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • 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.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Swift Scheduling
    • Convert delivery date descriptions to actual delivery dates.
  • Split-Second Stopwatch
    • Keep track of time through a digital stopwatch.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • Camicia
    • Simulate the card game and determine whether the match ends or enters an infinite loop.

Reviews

Start your review of Elm

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.