bryjen.monkey 0.1.1

dotnet tool install --global bryjen.monkey --version 0.1.1
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local bryjen.monkey --version 0.1.1
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=bryjen.monkey&version=0.1.1
                    
nuke :add-package bryjen.monkey --version 0.1.1
                    

Monkey.CLI

THIS PROJECT IS STILL A WIP

A CLI tool for the Monkey programming language that runs on .NET. Monkey is a general-purpose, minimal, procedural language with first-class functions. With a robust toolchain and tight .NET integration, it offers a feature rich platform with an emphasis on rapid prototyping.

 

Easy to install
dotnet tool install --global bryjen.monkey

No bootstrapping or building from source required, all you need is a compatible .NET runtime installed.

 

Development experience first
error: Invalid generic type.
  ┌─ C:\Users\Public\Program.mk:1:22
  |
0 | Result<string, System.Collections.Generic.List<string>>
  |                      ^ Expected a Comma ',', or a GreaterThan '>''.

Inspired by the error handling and error messages of modern functional languages (OCaml, F#, Rust, Gleam, etc.), the toolchain is developed to make writing and debugging as stress-free and predictable as possible.

 

Dotnet Interop
// csharp interop example
let builder = WebApplication.CreateBuilder(args);
let app = builder.Build();

let middleware = async fn(HttpContext context, Func<Task> next) {
    // preprocessing
    await next();
    // postprocessing
};

app.Use(middleware);
app.Run();

With first-class .NET support, Monkey can seamlessly use countless C#/F#/VB.NET libraries. Monkey can also transpile into C#, allowing you to see how your Monkey code translates to C#.

 

Functional concepts
type Verbosity =
    | Normal
    | Debug
    | Diagnostic
    
let performAction = fn([object -> object] action, Verbosity verbosity) : Result<unit, Exception> {
    ...
}

performAction(...)

Inspired by the simplicity of traditional procedural programming languages and the expressive and rigid structures of functional programming languages, Monkey aims to find a middle-ground and present the best of both worlds.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.1.1 138 3/29/2025
0.1.0 129 3/29/2025