Mercury
Mercury is a purely declarative functional logic programming language geared towards real-world applications. It is related to both Prolog and Haskell. It features a strong, static, polymorphic type system, as well as a strong mode and determinism system.
Mercury has several back-ends, Low-level C, High-level C, Java, Erlang, and C#.
Tasks
- 100 doors
- 15 Puzzle Game
- A+B
- ABC Problem
- Abstract type
- Accumulator factory
- Ackermann function
- Arithmetic/Integer
- Array concatenation
- Arrays
- Averages/Arithmetic mean
- Averages/Simple moving average
- Balanced brackets
- Binary digits
- Call a foreign-language function
- Combinations with repetitions
- Command-line arguments
- Concurrent computing
- Count in octal
- Count the coins
- Create a file
- Delete a file
- Dot product
- Empty string
- Environment variables
- Even or odd
- Execute a system command
- Factorial
- Factors of an integer
- Fibonacci sequence
- First-class functions
- FizzBuzz
- Flatten a list
- Formatted numeric output
- Function definition
- Generate lower case ASCII alphabet
- Gray code
- Greatest common divisor
- Guess the number
- Happy numbers
- Hello world!
- Hello world/Standard error
- Hello world/Text
- Horner's rule for polynomial evaluation
- Input loop
- Inverted syntax
- Leap year
- List comprehensions
- Literals/Integer
- Loop over multiple arrays simultaneously
- Loops/Downward for
- Loops/For
- Memory layout of a data structure
- Miller–Rabin primality test
- Mutual recursion
- Old lady swallowed a fly
- OpenGL
- Order two numerical lists
- Parametric polymorphism
- Partial function application
- Permutations
- Price fraction
- Print debugging statement
- Priority queue
- Program name
- Pythagorean triples
- Quaternion type
- Range extraction
- Read a file line by line
- Read entire file
- Real constants and functions
- Rename a file
- Repeat a string
- Return multiple values
- Rock-paper-scissors
- Roman numerals/Decode
- SEDOLs
- Sieve of Eratosthenes
- Sort an integer array
- Sorting algorithms/Merge sort
- Stack
- String case
- String concatenation
- String length
- String prepend
- Strip whitespace from a string/Top and tail
- Sum of squares
- Symmetric difference
- Synchronous concurrency
- Take notes on the command line
- Terminal control/Unicode output
- Tokenize a string
- Topological sort
- Tree traversal
- Universal Turing machine
- Use another language to call a function
- Variables
- Vector products
- Write float arrays to a text file
- Zero to the zero power