Nemerle Homepage

Google search:
But magic, true magic, is worked only by those beings who speak the Hardic tongue of Earthsea, or the Old Speech from which it grew.
from A Wizard of Earthsea by Ursula K. Le Guin

1. What Nemerle is?

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 and type inference and parameter polymorphism (aka generics). Meta-system allows great compiler extensibility, embedding domain specific languages, partial evaluation and aspect-oriented programming.

Beginning with the 0.2.0 release, language is a full CLS consumer and producer.

1.1. What Nemerle is not?

Nemerle is not a dynamically typed language in the spirit of Python or Perl. One does not write the types only when the compiler knows them anyway (which is most of the time).

Nemerle meta-programming system (macros) have nothing in common with macros in C. They are more akin to the Lisp macros.

Nemerle is not far away from C#.

Semantically Nemerle is mostly a C# superset.

Syntactically they are very close, the differences here are well thought out and necessary to make the language consistent. All the people who consider Nemerle syntax odd, compared to the C# one, are referred to the Haskell and/or Lisp manuals.

2. News

More news can be found in our code blog (or its RSS feed).

For older news see there.

3. License

The language implementation and this documentation is licensed under free-for-any-use BSD-like license. You can find copy of the license here.