Awesome
<p align="center"><img src="https://i.imgur.com/As4LMO6.png" alt="Mond Logo"/></p>Features
- sequences that can also be used for async/await
- prototype-based inheritance
- metamethods
- simple embedding with a great binding API
- a useful debugger that integrates with VS Code
- fully compatible with Native AOT deployments (.NET 8+)
Trying it
You can try it in your browser!
Alternatively, the Mond REPL is available as a dotnet
tool:
dotnet tool install -g Mond.Repl
Example
const Seq = require("Seq.mnd");
const randomApi =
"https://www.random.org/decimal-fractions/?num=1&dec=9&col=1&format=plain";
Async.start(seq() {
// concurrently request for 10 random numbers
var numberTasks = Seq.range(0, 10)
|> Seq.select(() -> Http.getAsync(randomApi))
|> Seq.toArray();
// wait for all the requests to finish
var numbers = yield Task.whenAll(numberTasks);
// parse and sum the numbers
var total = numbers
|> Seq.select(s -> Json.deserialize(s))
|> Seq.aggregate(0, (acc, n) -> acc + n);
printLn("average = {0}".format(total / 10));
});
Async.runToCompletion();
Install
Mond is available on NuGet. To install it, use the following command in the Package Manager Console.
PM> Install-Package Mond
The remote debugger is also available on NuGet.
PM> Install-Package Mond.RemoteDebugger
Syntax highlighting and debugging functionality is provided in Visual Studio Code with the Mond VSCode extension.
Documentation
Please check the wiki for documentation.