Menn
| Paradigm(s) | imperative, hardware descriptor |
|---|---|
| Designed by | User:Las-r |
| Appeared in | 2026 |
| Computational class | Bounded-storage machine |
| Major implementations | GitHub |
| Influenced by | Enn |
| File extension(s) | .mnn |
Menn (Minimal Executable NAND Network) is a minimalist logic-oriented esolang forked from Enn by Nayif Ehan in 2026. It removes all high-level abstractions to focus entirely on raw NAND logic.
Due to every Menn command also being in its predecessor, all Menn programs are compatible with Enn.
An interpreter can be found on GitHub.
How Menn works
Every instruction in Menn does 1 of 2 things:
- Set a variable (Initialization or NAND operation)
- Output a variable (Binary digit or newline)
The only computation available is the NAND gate. Unlike its predecessor, Menn lacks dedicated toggle commands, ASCII support, or user input.
IMPORTANT NOTE: Every program loops by default. To end a program, you must force-quit the interpreter.
Syntax
Basic Guidelines
- Line breaks, indentation, and trailing spaces are ignored.
- Every instruction must end with
;. - Comments are padded with
/. - Variable names cannot include spaces or use the following characters:
=,;,<,>. - Variable names cannot be
0or1(these are reserved as constant bit values).
Commands
Set a variable
Variables represent single bits.
To initialize a variable to 0:
q=;
To perform a NAND operation: q is set to w NAND e.
q=w,e;
To perform a NOT operation (since there is no toggle command), you must NAND a variable with itself or the constant 1:
not_w = w,w;
Output a value
The value of q (0 or 1) is outputted to the console. Outputs are inline.
>q;
An output symbol with no variable produces a newline.
>;
Computational Class
Menn is a Bounded Storage Machine (BSM), as it's computationally equivalent to Enn, though it lacks input functionality.
See Enn for proof of class.