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

Exercism

Scheme

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
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!".
  • Leap
    • Determine whether a given year is a leap year.
  • RNA Transcription
    • Given a DNA strand, return its RNA Complement Transcription.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • 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.
  • Binary Search
    • Implement a binary search algorithm.
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Transpose
    • Take input text and output it transposed.
  • Forth
    • Implement an evaluator for a very simple subset of Forth.
  • 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.
  • 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.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • 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.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Change
    • Correctly determine change to be given using the least number of coins.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
  • 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.
  • Acronym
    • Convert a long phrase to its acronym.
  • 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).
  • 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.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.

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.