Workspace

Nim

compiled scripting systems tools and expressive native programs

Definition first

What Nim means

Nim is a programming language for writing exact instructions, often used for compiled scripting systems tools and expressive native programs. Start with one mental model: input goes through steps and becomes output.

Minimum run factsFile main.nimRun nim c -r main.nimHabit Keep indentation clean and start with readable procedures
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

Nim compiler is the place that actually runs code from main.nim.

First readable code

Program output

entry point output syntax echo
echo 42
Output 42

Language lineage

Nim family tree

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

roots
PythonPascalModula
currentNimCompiled scripting family
familyCompiled scripting family
best used for

fast tools with readable syntax and systems reach

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

Nim practice 1

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

Q 2ChoiceStage 1 definitions

Nim practice 2

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

Q 3ChoiceStage 1 definitions

Nim practice 3

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

Q 4ChoiceStage 1 definitions

Nim practice 4

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

Q 5ChoiceStage 1 definitions

Nim practice 5

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

Q 6ChoiceStage 1 definitions

Nim practice 6

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

Q 7ChoiceStage 1 definitions

Nim practice 7

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

Q 8ChoiceStage 1 definitions

Nim practice 8

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

Q 9ChoiceStage 1 definitions

Nim practice 9

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

Q 10ChoiceStage 1 definitions

Nim practice 10

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

Q 11ChoiceStage 1 definitions

Nim practice 11

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

Q 12ChoiceStage 1 definitions

Nim practice 12

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

Q 13ChoiceStage 1 definitions

Nim practice 13

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

Q 14ChoiceStage 1 definitions

Nim practice 14

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

Q 15ChoiceStage 1 definitions

Nim practice 15

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

Q 16ChoiceStage 1 definitions

Nim practice 16

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

Q 17ChoiceStage 1 definitions

Nim practice 17

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

Q 18ChoiceStage 1 definitions

Nim practice 18

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

Multiple choice

Nim practice 1

Q 1Choicenew

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

echo 42

Reference

Patterns for main.nim

Nim compilernim c -r main.nim
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 echo

Program output

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

variables assignment types let

Values and names

let total = 42
echo total
  • Give values readable names
  • Keep one idea per line while learning
  • Trace the value before changing it

function collection Seq

Functions and collections

proc add(a: int, b: int): int =
  a + b

let scores = @[40, 2]
echo scores.len
  • Keep functions small
  • Return useful values
  • Use the common collection before reaching for frameworks