Use
Gleam няма изключения (exceptions), макроси (macros), type classes (класове типове?), ранно връщане от функции (early returns) и разнообразни други инструменти, залагайки изцяло на функции, които са first-class citizens и съпоставяне с шаблони (pattern matching). Това прави кода на Gleam по-лесен за разбиране, но понякога води до прекомерно влагане (indentation).
use
изразите в Gleam помагат да пишем код с функции за обратна
връзка (callbacks) без прекомерно влагане, както е показано в кода.
Функцията от по-висок ред (higher order function), която се извиква стои
отдясно на оператора <-
. Тази функция е задължително да приема
функция за обратна връзка (callback) като последен аргумент.
Имената на аргументите на функцията за обратна връзка (callback) се пишат
отляво на оператора <-
. Функцията може да приема произволен
брой аргументи, включително и нула.
Целият останал код в обхващащия го блок {}
става
тяло на функцията за обратна връзка (callback).
use
е много мощен и полезен инструмент, но прекомерното му
използване може да направи кода неразбираем, особено за начинаещи. Обикновено
кодът е по-ясен, ако използваме нормалния синтаксис за извикване на функции!