(let-fn name params ..body)
  name: a sym
  params: an arr
  body: zero or more forms
M

Defines a function and binds it to a local variable.

(let-fn name () form0 form1) is equivalent to:

(let name)
(= name (fn &name name ()
  form0
  form1))

Note that, because the declaration of name is separate from its initialization, the function is able to call itself recursively.

See also: let, fn

defn
fn-name