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

Exercism

Standard ML

via Exercism

Overview

Google, IBM & Meta Certificates — All 10,000+ Courses at 40% Off
One annual plan covers every course and certificate on Coursera. 40% off for a limited time.
Get Full Access
Standard ML (SML) is one of the two main dialects of the ML programming language. ML was the first strong statically typed language, developed in the early 1970s at the University of Edinburgh. Despite its age, SML feels very young in many ways; SML had features that mainstream languages would not pick up for decades and are still being experimented with today.

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Leap
    • Determine whether a given year is a leap year.
  • Two-Fer
    • Create a sentence of the form "One for X, one for me.".
  • Acronym
    • Convert a long phrase to its acronym.
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • 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.
  • Flatten Array
    • Take a nested list and return a single list with all values except nil/null.
  • 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.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Pangram
    • Determine if a sentence is a pangram.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • 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.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • 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.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Binary Search
    • Implement a binary search algorithm.
  • ISBN Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Line Up
    • Help lining up customers at YaÊ»qÅ«b's Deli.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Proverb
    • For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • 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.
  • Strain
    • Implement the `keep` and `discard` operation on collections.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Bottle Song
    • Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • List Ops
    • Implement basic list operations.
  • 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.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • 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.
  • Robot Simulator
    • Write a robot simulator.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Saddle Points
    • Detect saddle points in a matrix.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • 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.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • Conway's Game of Life
    • Implement Conway's Game of Life.
  • Killer Sudoku Helper
    • Write a tool that makes it easier to solve Killer Sudokus
  • 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.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Rational Numbers
    • Implement rational numbers.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Split-Second Stopwatch
    • Keep track of time through a digital stopwatch.
  • Transpose
    • Take input text and output it transposed.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • Piecing It Together
    • Fill in missing jigsaw puzzle details from partial data
  • 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.
  • Dominoes
    • Make a chain of dominoes.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • Alphametics
    • Given an alphametics puzzle, find the correct solution.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Connect
    • Compute the result for a game of Hex / Polygon.
  • Satellite
    • Rebuild binary trees from pre-order and in-order traversals.
  • Zebra Puzzle
    • Solve the zebra puzzle.

Reviews

Start your review of Standard ML

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.