AXIOM Документація Axiom
ENBLACKGRAYWHITE
Axiom · black

Базовий синтаксис

Axiom залишає синтаксис коротким: indentation керує внутрішніми блоками, а іменовані structural blocks закриваються через END.

Якщо ви знаєте Python, C++ або TypeScript, більшість конструкцій читаються без перекладу. Незвичні місця — це відсутність class/struct, значущий indentation і явний END name для типів.

Функції

Indentation усередині функціїAxiom
1clamp(i32 value, i32 lo, i32 hi) -> i32:2    require lo <= hi3    if value < lo:4        RETURN lo5    if value > hi:6        RETURN hi7    RETURN value
1

Назва, параметри, -> і return type.

2

Передумова функції.

3

if відкриває indentation block. Окремого END if немає.

4

RETURN навмисно помітний у коді.

5

Другий незалежний branch.

7

Fallback path.

Типи як structural blocks

Product typeAxiom
1point:2    f32 x3    f32 y45    length_squared -> f32:6        RETURN x * x + y * y7END point
1

point: починає іменований тип. Немає struct.

2

Поле x.

3

Поле y.

5

Метод. Поля доступні напряму як members поточного об’єкта.

7

Іменований structural block закривається END point.

Visibility

Member public за замовчуванням. Є лише явний private. Ідея проста: не треба вивчати три режими доступу, якщо дизайн системи спирається на contracts і capabilities.

private + getAxiom
1counter:2    private u64 value34    increment:5        value = value + 167    get current -> u64:8        RETURN value9END counter
2

Це поле не доступне caller-у.

4

Публічний метод за замовчуванням.

7

get означає: return value не можна мовчки ігнорувати.