OxL Справочник OxL
РусскийEnglish

6.2 Эффекты

ЭффектЧто разрешает
ioфайлы, процессы, переменные окружения, stdout/stderr
netсеть: rpc, стримы, акторы, кластер, HTTP
dbORM, std.kv, встроенное хранилище
timeчтение часов, sleep, таймеры
randслучайные числа
  • Набор эффектов пишется после возвращаемого типа через запятую: -> User | NotFound net, db. pure — пустой набор.
  • Функция МОЖЕТ вызывать только функции, эффекты которых входят в её набор. Нарушение — ошибка компиляции.
  • Эффекты приватных функций выводятся. Функции pub(api) ДОЛЖНЫ объявлять эффекты явно (или pure).
  • Полиморфизм по эффектам: fn map<T, U, effect F>(xs: List<T>, f: fn(T) -> U F) -> List<U> F.
  • Паника эффектом не является и возможна в любой функции.
  • Функция с любым из эффектов io, net, db, time — приостанавливаемая: может уступить поток планировщику (§8.2). pure- и rand-функции не приостанавливаются.

effects

См. также

Исходник: docs/spec/oxl-standard.md