YuriLang

A narrative-first esoteric programming language for lesbians, lovers of Yuri media, and anyone who believes code should have a soul.

v1.6 • Yuring Complete since 2026 • GPL-3.0

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

KeywordMeaningDescription
@wlwentry pointProgram starts here
@bondlet/varMutable variable
@awakeningconstImmutable binding
@confessprintOutput to console
@shipdef/fnDefine a function
@promisereturnReturn from function
@jealousifConditional
@fatewhileWhile loop
@sapphomatchPattern 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)