Nemerle
Nemerle is a high-level, statically-typed programming language for the .NET platform. It offers functional, object-oriented and imperative features. It has a simple C#-like syntax and a powerful meta-programming system.
Features that come from the functional land are variants, pattern matching, type inference and parameter polymorphism (aka generics). The meta-programming system allows great compiler extensibility, embedding domain specific languages, partial evaluation and aspect-oriented programming.
See Also
Tasks
- A+B
- Abstract type
- Accumulator factory
- Ackermann function
- Anonymous recursion
- Apply a callback to an array
- Arbitrary-precision integers (included)
- Arithmetic/Complex
- Arithmetic/Integer
- Array concatenation
- Arrays
- Assertions
- Associative array/Creation
- Averages/Arithmetic mean
- Averages/Root mean square
- Bitwise operations
- Boolean values
- Call a function
- Call an object method
- Case-sensitivity of identifiers
- Catamorphism
- Check input device is a terminal
- Check output device is a terminal
- Check that file exists
- Classes
- Closures/Value capture
- Command-line arguments
- Comments
- Conditional structures
- Constrained genericity
- Copy a string
- Count occurrences of a substring
- Create a file
- Currying
- Delete a file
- Determine if a string is numeric
- Dot product
- Empty directory
- Empty program
- Empty string
- Enforced immutability
- Enumerations
- Ethiopian multiplication
- Exceptions
- Exceptions/Catch an exception thrown in a nested call
- Exponentiation operator
- Extend your language
- Factorial
- Fibonacci sequence
- Filter
- First-class functions
- First-class functions/Use numbers analogously
- FizzBuzz
- Flow-control structures
- Function composition
- Function definition
- Generic swap
- Greatest element of a list
- Guess the number
- Guess the number/With feedback
- HTTP
- HTTPS
- Hash from two arrays
- Hello world!
- Hello world/Graphical
- Hello world/Newbie
- Hello world/Newline omission
- Hello world/Standard error
- Hello world/Text
- Higher-order functions
- Include a file
- Increment a numerical string
- Infinity
- Inheritance/Multiple
- Inheritance/Single
- Integer comparison
- Knuth shuffle
- Leap year
- List comprehensions
- Literals/Floating point
- Literals/Integer
- Literals/String
- Logical operations
- 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
- MD5
- Map range
- Metaprogramming
- Mutual recursion
- Named parameters
- Optional parameters
- Palindrome detection
- Partial function application
- Program name
- Program termination
- Queue/Usage
- Random number generator (included)
- Remove duplicate elements
- Repeat a string
- Return multiple values
- Reverse a string
- Set
- Short-circuit evaluation
- Sleep
- Sockets
- Sort an integer array
- Sort using a custom comparator
- Sorting algorithms/Bogosort
- Sorting algorithms/Bubble sort
- Sorting algorithms/Insertion sort
- Sorting algorithms/Merge sort
- Sorting algorithms/Quicksort
- Sorting algorithms/Selection sort
- Stack
- String case
- String concatenation
- String interpolation (included)
- String length
- Strip a set of characters from a string
- Strip whitespace from a string/Top and tail
- Substring
- Substring/Top and tail
- Sum and product of an array
- Sum of squares
- System time
- Terminal control/Clear the screen
- Terminal control/Hiding the cursor
- Terminal control/Ringing the terminal bell
- Terminal control/Unicode output
- Tokenize a string
- Unicode strings
- Unicode variable names
- Variadic function
- Vector products
- Walk a directory/Non-recursively