Базовий синтаксис
Axiom залишає синтаксис коротким: indentation керує внутрішніми блоками, а іменовані structural blocks закриваються через END.
Якщо ви знаєте Python, C++ або TypeScript, більшість конструкцій читаються без перекладу. Незвичні місця — це відсутність class/struct, значущий indentation і явний END name для типів.
Функції
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Назва, параметри, -> і return type.
Передумова функції.
if відкриває indentation block. Окремого END if немає.
RETURN навмисно помітний у коді.
Другий незалежний branch.
Fallback path.
Типи як structural blocks
1point:2 f32 x3 f32 y45 length_squared -> f32:6 RETURN x * x + y * y7END pointpoint: починає іменований тип. Немає struct.
Поле x.
Поле y.
Метод. Поля доступні напряму як members поточного об’єкта.
Іменований structural block закривається END point.
Visibility
Member public за замовчуванням. Є лише явний private. Ідея проста: не треба вивчати три режими доступу, якщо дизайн системи спирається на contracts і capabilities.
1counter:2 private u64 value34 increment:5 value = value + 167 get current -> u64:8 RETURN value9END counterЦе поле не доступне caller-у.
Публічний метод за замовчуванням.
get означає: return value не можна мовчки ігнорувати.