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

Exercism

Scheme

via Exercism

Overview

Build a Learning Habit
Download Class Central's free printable study calendar
Download for Free
Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety of programming paradigms, including functional, imperative, and message passing styles, find convenient expression in Scheme.

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • 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.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Acronym
    • Convert a long phrase to its acronym.
  • Leap
    • Determine whether a given year is a leap year.
  • Octal
    • Convert a octal number, represented as a string (e.g. '1735263'), to its decimal equivalent using first principles (i.e. no, you may not use built-in or external libraries to accomplish the conversion).
  • Pangram
    • Determine if a sentence is a pangram.
  • 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.
  • RNA Transcription
    • Given a DNA strand, return its RNA Complement Transcription.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Strain
    • Implement the `keep` and `discard` operation on collections.
  • 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.
  • Trinary
    • Convert a trinary number, represented as a string (e.g. '102012'), to its decimal equivalent using first principles.
  • Binary Search
    • Implement a binary search algorithm.
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • 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.
  • 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.
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • 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.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Change
    • Correctly determine change to be given using the least number of coins.
  • 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.
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Transpose
    • Take input text and output it transposed.
  • Forth
    • Implement an evaluator for a very simple subset of Forth.
  • 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 Scheme

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.