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 the description of Nemerle's most appealing Features.
Beginning with the 0.2.0 release, the language is a full CLS consumer and extender.
Beginning with the 0.9.0 release the compiler has full support for .NET 2.0 runtime generics (both production and consumption).
Nemerle is not a dynamically typed language in the spirit of Python or
Perl. Types can only be omitted when the compiler knows them
anyway (which is most of the time).
Nemerle meta-programming (Macros) has nothing in common with
macros in C. They are more akin to the Lisp macros.
Nemerle is not far away from CsharpDiff.
Semantically Nemerle is mostly a C# superset.
Syntactically they are very close, the differences being well thought
out and necessary to make the language consistent. All the people who
consider Nemerle syntax odd, compared to C#, are referred to
the Haskell and/or Lisp manuals.
|