- sequences that can also be used for async/await
- prototype-based inheritance
- metamethods
- simple embedding with a great binding API
- and a useful debugger that integrates with VS Code
You can try it in your browser! If you're interested, the backend code for that website is available here.
Alternatively, the Mond REPL is available as a dotnet
tool:
dotnet tool install -g Mond.Repl
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();
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.
Please check the wiki for documentation.