Meow Programming Language
The purrfect functional programming language
Meow Programming Language is a cat-themed functional programming language that
transpiles .nyan files to Go and compiles to native binaries.
kitty Cat {
name: string
age: int
}
nyan nyantyu = Cat("Nyantyu", 3)
meow greet(cat Cat) string {
bring cat.name + " says hello!"
}
nya(greet(nyantyu))Nyantyu says hello!
What is Meow Programming Language?
Meow Programming Language is a cat-themed functional programming language that transpiles to Go.
It uses playful keywords such as nyan, meow, purr,
and hiss, while still compiling to native binaries through Go.
How fast the result runs depends on how much you annotate: a function whose parameters and
return type are all scalars (int, float, string,
bool) gets a native Go signature — int is an
int64, and scalar arithmetic in its body is Go arithmetic rather than a runtime
call. Everything else stays dynamically typed behind a meow.Value interface:
top-level code, lambdas, and any expression reaching a list, a map or a struct —
including inside one of those native functions. Run meow transpile and read
exactly what you got.
Why Meow Programming Language?
Cat-Themed Syntax
Every keyword is a cat word — nyan, meow, sniff, purr, hiss. Programming has never been this fun.
Compiles to Native Binaries
Transpiles to Go and compiles to a native binary. Annotate a function with scalar types and its signature and arithmetic come out as ordinary Go — run meow transpile and check.
First-Class Functions
Lambdas with paw(x) { x * 2 }, plus lick (map), picky (filter), and curl (reduce).
Pattern Matching
Powerful peek expressions with ranges, wildcards, and multi-case support.
Pipe Operator
Chain operations elegantly with |=|. Transform data in a readable, functional style.
Standard Library
Built-in packages for file I/O and HTTP. Just nab "http" and start building.
See it in action
meow fizzbuzz(n int) string {
sniff (n % 15 == 0) {
bring "FizzBuzz"
} scratch sniff (n % 3 == 0) {
bring "Fizz"
} scratch sniff (n % 5 == 0) {
bring "Buzz"
} scratch {
bring to_string(n)
}
}
purr i (1..20) {
nya(fizzbuzz(i))
}meow fib(n int) int {
sniff (n <= 1) {
bring n
}
bring fib(n - 1) + fib(n - 2)
}
purr i (10) {
nya(fib(i))
}kitty Cat {
name: string
age: int
}
nyan nyanchu = Cat("Nyanchu", 3)
nyan tyako = Cat("Tyako", 5)
nyan tyomusuke = Cat("Tyomusuke", 2)
nya(nyanchu.name + " is " + to_string(nyanchu.age) + " years old")nyan numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Pipeline: filter evens, double them, sum
nyan evens = numbers |=| picky(paw(x) { x % 2 == 0 })
nyan doubled = evens |=| lick(paw(x) { x * 2 })
nyan result = doubled |=| curl(0, paw(acc, x) { acc + x })
nya(result) # 60Frequently Asked Questions about Meow Programming Language
What is the Meow Programming Language?
The Meow Programming Language is a cat-themed functional programming language that transpiles .nyan source files into Go source code, which is then compiled to a native binary by the Go toolchain.
What file extension does the Meow Programming Language use?
Meow Programming Language source files use the .nyan extension and are encoded in UTF-8.
How is the Meow Programming Language different from MeowLang and other cat-themed languages?
The Meow Programming Language transpiles .nyan files to Go source and compiles to a native binary through the Go toolchain. Other projects named MeowLang or similar are typically esoteric or toy interpreters and are not affiliated with this project. See the detailed comparison for more.
Where can I try the Meow Programming Language online?
You can try the Meow Programming Language in the browser-based Playground at https://meow.oreha.dev/playground/, which runs a WebAssembly build of the Meow compiler.
Get started in seconds
Install
brew install 135yshr/homebrew-tap/meowWrite
echo 'nya("Hello, World!")' > hello.nyanRun
meow run hello.nyan