Nim
Nim (formerly known as Nimrod) is a general purpose, high-level, system programming, statically typed imperative compiled programming language that is developed by Andreas Rumpf.
There is a lot of focus on portability and efficiency. The language compiles to C, C++ and JavaScript. Nim is actively being developed. The language has extensive documentation, and a very good tutorial.
You can ask for help in the chat on Freenode in the #nim channel, on Gitter/Nim, or in the forum.
Tasks
- 100 doors
- 15 Puzzle Game
- 2048
- 24 game
- 24 game/Solve
- 4-rings or 4-squares puzzle
- 9 billion names of God the integer
- A+B
- ABC Problem
- Abstract type
- Abundant, deficient and perfect number classifications
- Accumulator factory
- Ackermann function
- Address of a variable
- Align columns
- Almost prime
- Amicable pairs
- Anagrams
- Angle difference between two bearings
- Anonymous recursion
- Anti-primes
- Apply a callback to an array
- Arbitrary-precision integers (included)
- Arithmetic evaluation
- Arithmetic-geometric mean
- Arithmetic/Complex
- Arithmetic/Integer
- Arithmetic/Rational
- Array concatenation
- Array length
- Arrays
- Assertions
- Associative array/Creation
- Associative array/Iteration
- Attractive numbers
- Average loop length
- Averages/Arithmetic mean
- Averages/Mean angle
- Averages/Mean time of day
- Averages/Median
- Averages/Mode
- Averages/Pythagorean means
- Averages/Root mean square
- Averages/Simple moving average
- Babbage problem
- Balanced brackets
- Barnsley fern
- Best shuffle
- Binary digits
- Binary search
- Binary strings
- Bitcoin/address validation
- Bitcoin/public point to address
- Bitmap
- Bitmap/Read a PPM file
- Bitwise IO
- Bitwise operations
- Boolean values
- Box the compass
- Break OO privacy
- Bresenham's Line Algorithm
- Bulls and cows
- CRC-32
- CSV data manipulation
- CSV to HTML translation
- CUSIP
- Caesar cipher
- Calculating the value of e
- Call a foreign-language function
- Call a function
- Call a function in a shared library
- Call an object method
- Case-sensitivity of identifiers
- Casting out nines
- Catalan numbers
- Catalan numbers/Pascal's triangle
- Catamorphism
- Chaos game
- Character codes
- Chat server
- Check that file exists
- Chemical Calculator
- Chinese remainder theorem
- Cholesky decomposition
- Circles of given radius through two points
- Classes
- Closures/Value capture
- Collections
- Color of a screen pixel
- Combinations
- Combinations and permutations
- Combinations with repetitions
- Comma quibbling
- Command-line arguments
- Comments
- Compile-time calculation
- Compiler/lexical analyzer
- Compound data type
- Concurrent computing
- Conditional structures
- Constrained genericity
- Constrained random points on a circle
- Continued fraction
- Copy a string
- Count in factors
- Count in octal
- Count occurrences of a substring
- Count the coins
- Create a file
- Create a file on magnetic tape
- Create a two-dimensional array at runtime
- Create an HTML table
- Create an object at a given address
- Cuban primes
- Cumulative standard deviation
- Currying
- DNS query
- Date format
- Date manipulation
- Day of the week
- Deconvolution/1D
- Deepcopy
- Define a primitive data type
- Delete a file
- Detect division by zero
- Determinant and permanent
- Determine if a string is numeric
- Determine if only one instance is running
- Digital root
- Digital root/Multiplicative digital root
- Dining philosophers
- Distributed programming
- Documentation
- Dot product
- Doubly-linked list/Definition
- Doubly-linked list/Element definition
- Doubly-linked list/Element insertion
- Doubly-linked list/Traversal
- Draw a clock
- Draw a cuboid
- Draw a pixel
- Draw a sphere
- Dynamic variable names
- Echo server
- Empty directory
- Empty program
- Empty string
- Enforced immutability
- Entropy
- Enumerations
- Environment variables
- Equilibrium index
- Ethiopian multiplication
- Euler method
- Euler's sum of powers conjecture
- Evaluate binomial coefficients
- Even or odd
- Events
- Evolutionary algorithm
- Exceptions
- Exceptions/Catch an exception thrown in a nested call
- Executable library
- Execute Brainfuck
- Execute HQ9+
- Execute a system command
- Exponentiation operator
- Extend your language
- Extensible prime generator
- Extreme floating point values
- FASTA format
- Factorial
- Factors of a Mersenne number
- Factors of an integer
- Farey sequence
- Fast Fourier transform
- Fibonacci n-step number sequences
- Fibonacci sequence
- Filter
- Find common directory path
- Find limit of recursion
- Find the last Sunday of each month
- Find the missing permutation
- First-class functions
- Five weekends
- FizzBuzz
- Flatten a list
- Flow-control structures
- Floyd's triangle
- Forest fire
- Fork
- Formatted numeric output
- Forward difference
- Four bit adder
- Function composition
- Function definition
- Function prototype
- GUI component interaction
- GUI enabling/disabling of controls
- GUI/Maximum window dimensions
- Gamma function
- General FizzBuzz
- Generate lower case ASCII alphabet
- Generator/Exponential
- Generic swap
- Get system command output
- Globally replace text in several files
- Gray code
- Greatest common divisor
- Greatest element of a list
- Greatest subsequential sum
- Guess the number
- Guess the number/With feedback
- Guess the number/With feedback (player)
- HTTP
- HTTPS
- Hamming numbers
- Handle a signal
- Happy numbers
- Harshad or Niven series
- Hash from two arrays
- Haversine formula
- Hello world!
- Hello world/Graphical
- Hello world/Line printer
- Hello world/Newbie
- Hello world/Newline omission
- Hello world/Standard error
- Hello world/Text
- Hello world/Web server
- Here document
- Heronian triangles
- Higher-order functions
- Hofstadter Figure-Figure sequences
- Hofstadter Q sequence
- Hofstadter-Conway $10,000 sequence
- Horizontal sundial calculations
- Horner's rule for polynomial evaluation
- Host introspection
- Hostname
- Huffman coding
- IBAN
- Identity matrix
- Image noise
- Include a file
- Increment a numerical string
- Infinity
- Inheritance/Single
- Input loop
- Integer comparison
- Integer overflow
- Integer sequence
- Interactive programming
- Introspection
- Inverted syntax
- JSON
- Jensen's Device
- Josephus problem
- Jump anywhere
- Kaprekar numbers
- Keyboard input/Flush the keyboard buffer
- Knuth shuffle
- Koch curve
- LZW compression
- Langton's ant
- Largest int from concatenated ints
- Last Friday of each month
- Least common multiple
- Left factorials
- Leonardo numbers
- Letter frequency
- Levenshtein distance
- Linear congruential generator
- List comprehensions
- Literals/Floating point
- Literals/Integer
- Literals/String
- Logical operations
- Long multiplication
- Longest common subsequence
- Loop over multiple arrays simultaneously
- Loops/Break
- Loops/Continue
- Loops/Do-while
- Loops/Downward for
- Loops/For
- Loops/For with a specified step
- Loops/Foreach
- Loops/Infinite
- Loops/N plus one half
- Loops/Nested
- Loops/While
- Lucas-Lehmer test
- Luhn test of credit card numbers
- MAC Vendor Lookup
- MD4
- MD5
- MD5/Implementation
- Machine code
- Mad Libs
- Magic squares of odd order
- Main step of GOST 28147-89
- Man or boy test
- Mandelbrot set
- Map range
- Matrix multiplication
- Matrix transposition
- Maximum triangle path sum
- Maze generation
- Memory allocation
- Memory layout of a data structure
- Menu
- Metaprogramming
- Middle three digits
- Miller–Rabin primality test
- Modular exponentiation
- Modular inverse
- Monte Carlo methods
- Monty Hall problem
- Multifactorial
- Multiple distinct objects
- Multiplication tables
- Multisplit
- Munchausen numbers
- Mutual recursion
- N-queens problem
- Named parameters
- Nim Game
- Non-continuous subsequences
- Non-decimal radices/Convert
- Non-decimal radices/Input
- Non-decimal radices/Output
- Nth root
- Null object
- Number names
- Number reversal game
- Numeric error propagation
- Numerical integration
- Numerical integration/Gauss-Legendre Quadrature
- Odd word problem
- Old lady swallowed a fly
- One of n lines in a file
- One-dimensional cellular automata
- OpenGL
- Operator precedence
- Optional parameters
- Order two numerical lists
- Ordered words
- Palindrome detection
- Pangram checker
- Paraffins
- Parametric polymorphism
- Parse command-line arguments
- Parsing/RPN calculator algorithm
- Parsing/RPN to infix conversion
- Parsing/Shunting-yard algorithm
- Pascal's triangle
- Pascal's triangle/Puzzle
- Perfect numbers
- Permutations
- Permutations by swapping
- Pernicious numbers
- Pi
- Pick random element
- Playing cards
- Pointers and references
- Polymorphic copy
- Polymorphism
- Power set
- Price fraction
- Primality by trial division
- Prime decomposition
- Priority queue
- Probabilistic choice
- Problem of Apollonius
- Program name
- Program termination
- Pythagorean quadruples
- Pythagorean triples
- Queue/Definition
- Queue/Usage
- Quickselect algorithm
- Quine
- RIPEMD-160
- Ramer-Douglas-Peucker line simplification
- Random number generator (device)
- Random number generator (included)
- Random numbers
- Range expansion
- Range extraction
- Read a file line by line
- Read a specific line from a file
- Read entire file
- Real constants and functions
- Record sound
- Regular expressions
- Remove duplicate elements
- Rename a file
- Rep-string
- Repeat a string
- Resistance Calculator
- Return multiple values
- Reverse a string
- Reverse words in a string
- Roman numerals/Decode
- Roman numerals/Encode
- Roots of unity
- Rosetta Code/Count examples
- Rosetta Code/Find unimplemented tasks
- Rot-13
- Run-length encoding
- Runge-Kutta method
- S-Expressions
- SEDOLs
- SHA-1
- SHA-256
- Safe addition
- Sattolo cycle
- Scope modifiers
- Search a list
- Self-describing numbers
- Semiprime
- Semordnilap
- Send email
- Sequence of non-squares
- Set
- Shell one-liner
- Short-circuit evaluation
- Show Ascii table
- Show the epoch
- Sierpinski carpet
- Sierpinski triangle
- Sieve of Eratosthenes
- Simple windowed application
- Simulated annealing
- Singleton
- Singly-linked list/Element definition
- Singly-linked list/Element insertion
- Singly-linked list/Traversal
- Sleep
- Sockets
- Solve a Hidato puzzle
- Sort an array of composite structures
- Sort an integer array
- Sort disjoint sublist
- Sort stability
- Sort using a custom comparator
- Sorting Algorithms/Circle Sort
- Sorting algorithms/Bead sort
- Sorting algorithms/Bogosort
- Sorting algorithms/Bubble sort
- Sorting algorithms/Cocktail sort
- Sorting algorithms/Comb sort
- Sorting algorithms/Counting sort
- Sorting algorithms/Cycle sort
- Sorting algorithms/Gnome sort
- Sorting algorithms/Heapsort
- Sorting algorithms/Insertion sort
- Sorting algorithms/Merge sort
- Sorting algorithms/Pancake sort
- Sorting algorithms/Permutation sort
- Sorting algorithms/Quicksort
- Sorting algorithms/Selection sort
- Sorting algorithms/Shell sort
- Sorting algorithms/Sleep sort
- Sorting algorithms/Stooge sort
- Sorting algorithms/Strand sort
- Sparkline in unicode
- Special characters
- Spiral matrix
- Split a character string based on change of character
- Square but not cube
- Stack
- Stack traces
- Stair-climbing puzzle
- Statistics/Basic
- Stem-and-leaf plot
- String append
- String case
- String comparison
- String concatenation
- String interpolation (included)
- String length
- String matching
- String prepend
- Strip a set of characters from a string
- Strip block comments
- Strip comments from a string
- Strip control codes and extended characters from a string
- Strip whitespace from a string/Top and tail
- Substring
- Substring/Top and tail
- Sudoku
- Sum and product of an array
- Sum digits of an integer
- Sum multiples of 3 and 5
- Sum of a series
- Sum of squares
- Sum to 100
- Symmetric difference
- Synchronous concurrency
- System time
- Table creation/Postal addresses
- Take notes on the command line
- Temperature conversion
- Terminal control/Clear the screen
- Terminal control/Coloured text
- Terminal control/Cursor positioning
- Terminal control/Dimensions
- Terminal control/Display an extended character
- Terminal control/Hiding the cursor
- Terminal control/Inverse video
- Terminal control/Preserve screen
- Terminal control/Ringing the terminal bell
- Terminal control/Unicode output
- Ternary logic
- Test a function
- Text processing/1
- Text processing/2
- Text processing/Max licenses in use
- The Twelve Days of Christmas
- Thiele's interpolation formula
- Time a function
- Tokenize a string
- Tonelli-Shanks algorithm
- Top rank per group
- Total circles area
- Totient function
- Trabb Pardo–Knuth algorithm
- Tree traversal
- Trigonometric functions
- Truncatable primes
- Truncate a file
- Two Sum
- URL decoding
- URL encoding
- URL parser
- Unbias a random generator
- Unicode strings
- Unicode variable names
- Universal Turing machine
- Unix/ls
- Use another language to call a function
- Variable size/Get
- Variable size/Set
- Variable-length quantity
- Variables
- Variadic function
- Vector products
- Vigenère cipher
- Visualize a tree
- Walk a directory/Non-recursively
- Walk a directory/Recursively
- Web scraping
- Window creation
- Window management
- Wireworld
- Word wrap
- Write entire file
- Write float arrays to a text file
- XML/DOM serialization
- XML/Input
- XML/Output
- XML/XPath
- Zeckendorf number representation
- Zero to the zero power
- Zig-zag matrix