Standard ML
'''Standard ML''' (SML) is a general-purpose, modular, functional programming language with compile-time type checking and type inference. It is popular among compiler writers and programming language researchers, as well as in the development of theorem provers.
SML is a modern descendant of the derived from::ML programming language used in the LCF theorem-proving project. It is unique among widely used languages in that it has a formal specification, given as typing rules and operational semantics in The Definition of Standard ML (1990, revised and simplified as The Definition of Standard ML (Revised) in 1997).
Tasks
- 100 doors
- 15 Puzzle Game
- A+B
- Abstract type
- Abundant, deficient and perfect number classifications
- Accumulator factory
- Ackermann function
- Anonymous recursion
- Apply a callback to an array
- Arbitrary-precision integers (included)
- Arithmetic evaluation
- Arithmetic/Complex
- Arithmetic/Integer
- Array concatenation
- Array length
- Averages/Arithmetic mean
- Averages/Root mean square
- Balanced brackets
- Binary digits
- Binary search
- Bitmap/Flood fill
- Bitwise operations
- Boolean values
- Calculating the value of e
- Cartesian product of two or more lists
- Case-sensitivity of identifiers
- Catalan numbers
- Catamorphism
- Character codes
- Check that file exists
- Combinations
- Combinations with repetitions
- Comma quibbling
- Command-line arguments
- Comments
- Compound data type
- Copy a string
- Count in octal
- Count occurrences of a substring
- Create a file
- Create a two-dimensional array at runtime
- Create an HTML table
- Currying
- Date format
- Day of the week
- Delete a file
- Detect division by zero
- Determine if a string is numeric
- Dot product
- Element-wise operations
- Empty directory
- Empty program
- Empty string
- Enumerations
- Environment variables
- Even or odd
- Exceptions
- Execute Brainfuck
- Execute a system command
- Exponentiation operator
- Factorial
- Factors of an integer
- Fibonacci sequence
- Filter
- First-class functions
- FizzBuzz
- Flatten a list
- Fork
- Formatted numeric output
- Forward difference
- Function composition
- Function definition
- Generate lower case ASCII alphabet
- Generic swap
- Gray code
- Greatest element of a list
- Greatest subsequential sum
- Guess the number/With feedback (player)
- Hash from two arrays
- Hello world!
- Hello world/Newline omission
- Hello world/Standard error
- Hello world/Text
- Higher-order functions
- Horner's rule for polynomial evaluation
- Hostname
- Huffman coding
- IBAN
- Include a file
- Increment a numerical string
- Infinity
- Integer comparison
- Integer sequence
- Interactive programming
- Jensen's Device
- Left factorials
- Literals/Integer
- Literals/String
- Logical operations
- Longest increasing subsequence
- Loop over multiple arrays simultaneously
- Loops/Foreach
- Loops/Infinite
- Loops/While
- Luhn test of credit card numbers
- Man or boy test
- Matrix multiplication
- Miller–Rabin primality test
- Mutual recursion
- N-queens problem
- Named parameters
- Nested function
- Non-continuous subsequences
- Non-decimal radices/Convert
- Non-decimal radices/Input
- Non-decimal radices/Output
- Null object
- Numerical integration
- Order two numerical lists
- Palindrome detection
- Parametric polymorphism
- Parse command-line arguments
- Parsing/Shunting-yard algorithm
- Pattern matching
- Pointers and references
- Power set
- Primality by trial division
- Priority queue
- Program name
- Program termination
- QR decomposition
- Queue/Definition
- Queue/Usage
- Quickselect algorithm
- Quine
- Random numbers
- Real constants and functions
- Regular expressions
- Rename a file
- Repeat a string
- Return multiple values
- Reverse a string
- Rot-13
- Run-length encoding
- Runge-Kutta method
- SEDOLs
- Search a list
- Search a list of records
- Secure temporary file
- Short-circuit evaluation
- Show the epoch
- Sleep
- Sort an integer array
- Sort disjoint sublist
- Sort using a custom comparator
- Sorting algorithms/Bead sort
- Sorting algorithms/Bubble sort
- Sorting algorithms/Heapsort
- Sorting algorithms/Insertion sort
- Sorting algorithms/Merge sort
- Sorting algorithms/Patience sort
- Sorting algorithms/Quicksort
- Sorting algorithms/Selection sort
- Soundex
- Split a character string based on change of character
- Stack
- Stair-climbing puzzle
- String case
- String concatenation
- String length
- String matching
- Strip a set of characters from a string
- Substring/Top and tail
- Sum and product of an array
- Sum of a series
- Sum of squares
- System time
- Time a function
- Tokenize a string
- Topic variable
- Universal Turing machine
- Unix/ls
- Wireworld
- Write float arrays to a text file
- Y combinator
- Zebra puzzle
- Zero to the zero power