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

Exercism

Clojure

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Clojure is a dynamic programming language that targets the Java Virtual Machine (JVM). Designed as a general purpose language, Clojure combines the approachability of a scripting language with a robust infrastructure for multithreaded programming. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent .

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Lucian's Luscious Lasagna
    • Learn about the basics of Clojure by following a lasagna recipe
  • Bird Watcher
    • Learn about vectors by counting the birds in your garden
  • Cars, Assemble!
    • Learn about numbers and conditionals by analyzing the production of an assembly line in a car factory
  • Interest is Interesting
    • Learn about floating-point numbers by calculating interest for savings accounts
  • Annalyn's Infiltration
    • Learn about booleans while helping Annalyn rescue her friend
  • Log Levels
    • Learn about strings by parsing application logs
  • Elyses Destructured Enchantments
    • Elyse's magic training continues, teaching you about sequential destructing.
  • Squeaky Clean
    • Learn about string operations by cleaning up identifier names
  • Coordinate Transformation
    • Practice your knowledge of closures by implementing various coordinate transformations.
  • Card Games
    • Learn about lists by tracking hands in card games.
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Leap
    • Determine whether a given year is a leap year.
  • High Scores
    • Manage a player's High Score list.
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • Reverse String
    • Reverse a given string.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Resistor Color
    • Convert a resistor band's color to its numeric representation.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • Resistor Color Duo
    • Convert color codes, as used on resistors, to a numeric value.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • Strain
    • Implement the `keep` and `discard` operation on collections.
  • 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.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Complex Numbers
    • Implement complex numbers.
  • Bank Account
    • Simulate a bank account supporting opening/closing, withdraws, and deposits of money. Watch out for concurrent transactions!
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • Pangram
    • Determine if a sentence is a pangram.
  • Square Root
    • Given a natural radicand, return its square root.
  • 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.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Proverb
    • For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.
  • Acronym
    • Convert a long phrase to its acronym.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • Flatten Array
    • Take a nested list and return a single list with all values except nil/null.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Beer Song
    • Produce the lyrics to that beloved classic, that field-trip favorite: 99 Bottles of Beer on the Wall.
  • Clock
    • Implement a clock that handles times without dates.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • 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.
  • Saddle Points
    • Detect saddle points in a matrix.
  • Binary Search
    • Implement a binary search algorithm.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • ISBN Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • List Ops
    • Implement basic list operations.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • 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 Name
    • Manage robot factory settings.
  • Conway's Game of Life
    • Implement Conway's Game of Life.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • Transpose
    • Take input text and output it transposed.
  • 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.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • State of Tic-Tac-Toe
    • Determine the game state of a match of Tic-Tac-Toe.
  • Flower Field
    • Mark all the flowers in a garden.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • Simple Cipher
    • Implement the Vigenère cipher, a simple substitution cipher.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Robot Simulator
    • Write a robot simulator.
  • Meetup
    • Calculate the date of meetups.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • Killer Sudoku Helper
    • Write a tool that makes it easier to solve Killer Sudokus
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Change
    • Correctly determine change to be given using the least number of coins.
  • Dominoes
    • Make a chain of dominoes.
  • Connect
    • Compute the result for a game of Hex / Polygon.
  • Poker
    • Pick the best hand(s) from a list of poker hands.
  • POV
    • Reparent a graph on a selected node.
  • Zipper
    • Creating a zipper for a binary tree.
  • Zebra Puzzle
    • Solve the zebra puzzle.
  • Go Counting
    • Count the scored points on a Go board.

Reviews

Start your review of Clojure

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.