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

Exercism

Erlang

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Erlang is a functional programming language, used for creating real-time distributed systems, which can easily scale in size. It's best for concurrent applications, such as instant messaging and banking platforms, as each function call has their own process and operates independently. This is useful as code can run for a very long time without issues occurring. Also, processes and message passing are all built into the language by default - no need for any extra libraries!

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Leap
    • Determine whether a given year is a leap year.
  • 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.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Acronym
    • Convert a long phrase to its acronym.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Square Root
    • Given a natural radicand, return its square root.
  • Strain
    • Implement the `keep` and `discard` operation on collections.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • 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.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Custom Set
    • Create a custom set type.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Saddle Points
    • Detect saddle points in a matrix.
  • Complex Numbers
    • Implement complex numbers.
  • Rational Numbers
    • Implement rational numbers.
  • Beer Song
    • Produce the lyrics to that beloved classic, that field-trip favorite: 99 Bottles of Beer on the Wall.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Change
    • Correctly determine change to be given using the least number of coins.
  • Meetup
    • Calculate the date of meetups.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • Minesweeper
    • Add the numbers to a minesweeper board.
  • Dominoes
    • Make a chain of dominoes.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Parallel Letter Frequency
    • Count the frequency of letters in texts using parallel computation.
  • Forth
    • Implement an evaluator for a very simple subset of Forth.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Bank Account
    • Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
  • Poker
    • Pick the best hand(s) from a list of poker hands.
  • Connect
    • Compute the result for a game of Hex / Polygon.
  • List Ops
    • Implement basic list operations.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Satellite
    • Rebuild binary trees from pre-order and in-order traversals.
  • Zipper
    • Creating a zipper for a binary tree.
  • ISBN Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Simple Linked List
    • Write a simple linked list implementation that uses Elements and a List.
  • Clock
    • Implement a clock that handles times without dates.
  • Variable Length Quantity
    • Implement variable length quantity encoding and decoding.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Transpose
    • Take input text and output it transposed.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Robot Simulator
    • Write a robot simulator.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • 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.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Pangram
    • Determine if a sentence is a pangram.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • 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.
  • Reverse String
    • Reverse a given string.
  • 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.
  • 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.

Reviews

Start your review of Erlang

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.