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

Exercism

Racket

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
"Racket (formerly named PLT Scheme) is a general purpose, multi-paradigm programming language in the Lisp/Scheme family. One of its design goals is to serve as a platform for language creation, design, and implementation. The language is used in a variety of contexts such as scripting, general-purpose programming, computer science education, and research." - Wikipedia

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Acronym
    • Convert a long phrase to its acronym.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • 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.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Clock
    • Implement a clock that handles times without dates.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • 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.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • 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.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Grep
    • Search a file for lines matching a regular expression pattern. Return the line number and contents of each matching line.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • High Scores
    • Manage a player's High Score list.
  • ISBN Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Leap
    • Determine whether a given year is a leap year.
  • Line Up
    • Help lining up customers at YaÊ»qÅ«b's Deli.
  • List Ops
    • Implement basic list operations.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Pangram
    • Determine if a sentence is a pangram.
  • 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.
  • 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.
  • 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.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • Reverse String
    • Reverse a given string.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Square Root
    • Given a natural radicand, return its square root.
  • Strain
    • Implement the `keep` and `discard` operation on collections.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Alphametics
    • Given an alphametics puzzle, find the correct solution.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • 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.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Meetup
    • Calculate the date of meetups.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • 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.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Robot Name
    • Manage robot factory settings.
  • Robot Simulator
    • Write a robot simulator.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • Two Bucket
    • Given two buckets of different size, demonstrate how to measure an exact number of liters.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Zebra Puzzle
    • Solve the zebra puzzle.
  • Bank Account
    • Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
  • Flower Field
    • Mark all the flowers in a garden.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Parallel Letter Frequency
    • Count the frequency of letters in texts using parallel computation.
  • Variable Length Quantity
    • Implement variable length quantity encoding and decoding.
  • Bowling
    • Score a bowling game.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.

Reviews

Start your review of Racket

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.