Workspace

Clojure

Lisp on the JVM data transformation and interactive systems

Definition first

What Clojure means

Clojure is a programming language for writing exact instructions, often used for Lisp on the JVM data transformation and interactive systems. Start with one mental model: input goes through steps and becomes output.

Minimum run factsFile main.cljRun clojure -M main.cljHabit Work at the REPL and transform immutable data step by step
Program

An ordered set of instructions. It reads input, follows rules, and produces output.

Value and variable

A value is data. A variable is the name you use to hold and reuse that data.

Function

A named piece of work. It takes input, does one job, and can return a result.

Runtime

Clojure CLI is the place that actually runs code from main.clj.

First readable code

Program output

entry point output syntax println
(println 42)
Output 42

Language lineage

Clojure family tree

See where Clojure comes from, which languages feel close, and what to learn next.

roots
LispSchemeJava
currentClojureLisp on JVM family
familyLisp on JVM family
best used for

data oriented programs, immutable workflows, and JVM functional code

Zero base path

1Read one rule2Predict output3Type from memory4Run checklist5Repeat with one change

Question bank

Search before practice

Pick a stage or search across the open programming bank. Jump straight to the matching drill.

18 matching questions
Q 1ChoiceStage 1 definitions

Clojure practice 1

Clojure question 1. Choose the statement that matches printing a value.

Q 2ChoiceStage 1 definitions

Clojure practice 2

Clojure question 2. Choose the statement that matches naming a value.

Q 3ChoiceStage 1 definitions

Clojure practice 3

Clojure question 3. Choose the statement that matches reusable function.

Q 4ChoiceStage 1 definitions

Clojure practice 4

Clojure question 4. Choose the statement that matches basic collection.

Q 5ChoiceStage 1 definitions

Clojure practice 5

Clojure question 5. Choose the statement that matches printing a value.

Q 6ChoiceStage 1 definitions

Clojure practice 6

Clojure question 6. Choose the statement that matches naming a value.

Q 7ChoiceStage 1 definitions

Clojure practice 7

Clojure question 7. Choose the statement that matches reusable function.

Q 8ChoiceStage 1 definitions

Clojure practice 8

Clojure question 8. Choose the statement that matches basic collection.

Q 9ChoiceStage 1 definitions

Clojure practice 9

Clojure question 9. Choose the statement that matches printing a value.

Q 10ChoiceStage 1 definitions

Clojure practice 10

Clojure question 10. Choose the statement that matches naming a value.

Q 11ChoiceStage 1 definitions

Clojure practice 11

Clojure question 11. Choose the statement that matches reusable function.

Q 12ChoiceStage 1 definitions

Clojure practice 12

Clojure question 12. Choose the statement that matches basic collection.

Q 13ChoiceStage 1 definitions

Clojure practice 13

Clojure question 13. Choose the statement that matches printing a value.

Q 14ChoiceStage 1 definitions

Clojure practice 14

Clojure question 14. Choose the statement that matches naming a value.

Q 15ChoiceStage 1 definitions

Clojure practice 15

Clojure question 15. Choose the statement that matches reusable function.

Q 16ChoiceStage 1 definitions

Clojure practice 16

Clojure question 16. Choose the statement that matches basic collection.

Q 17ChoiceStage 1 definitions

Clojure practice 17

Clojure question 17. Choose the statement that matches printing a value.

Q 18ChoiceStage 1 definitions

Clojure practice 18

Clojure question 18. Choose the statement that matches naming a value.

Multiple choice

Clojure practice 1

Q 1Choicenew

Clojure question 1. Choose the statement that matches printing a value.

(println 42)

Reference

Patterns for main.clj

Clojure CLIclojure -M main.clj
Recall from memoryRead a small point then write it back without looking
Trace the codeWrite variable values line by line before you run the answer
Type it yourselfCopy less type more and fix one small error at a time

entry point output syntax println

Program output

(println 42)
  • Run the smallest file first
  • Print one known value
  • Check the output before adding more code

variables assignment types def

Values and names

(def total 42)
(println total)
  • Give values readable names
  • Keep one idea per line while learning
  • Trace the value before changing it

function collection Vector

Functions and collections

(defn add [a b]
  (+ a b))

(def scores [40 2])
(println (count scores))
  • Keep functions small
  • Return useful values
  • Use the common collection before reaching for frameworks