1. Philosophy & Design Goals
YuriLang optimizes for emotional resonance. Keywords are drawn from Yuri manga and anime — stories about slow realizations, courage, and connection.
A variable is @bonded. A function @ships two values. A return value is a @promise.
2. Language Overview
Files end in .yuri. Every program starts with @wlw (the entry point).
@wlw:
@confess "Hello, World!"
Indentation (4 spaces) defines blocks. Comments use ?.
3. Core Keywords
| Keyword | Meaning | Description |
|---|---|---|
@wlw | entry point | Program starts here |
@bond | let/var | Mutable variable |
@awakening | const | Immutable binding |
@confess | Output to console | |
@ship | def/fn | Define a function |
@promise | return | Return from function |
@jealous | if | Conditional |
@fate | while | While loop |
@sappho | match | Pattern matching |
Control Flow
@jealous / @forgive (if/else)
@jealous x > 5:
@confess "Greater than five."
@forgive:
@confess "Five or less."
@cling and @fate (loops)
@cling 5:
@confess "yuri!"
@fate i < 10:
@confess i
@rebond i = i plus 1
Functions — @ship & @promise
@ship add a b:
@promise a plus b
@wlw:
@bond result = @add 5 3
@confess result
Example Programs
Hello World
@wlw:
@confess "Hello, World!"
Fibonacci (excerpt)
@ship fib n:
@jealous n <= 1:
@promise n
@forgive:
@promise @fib (n minus 1) plus @fib (n minus 2)