On this page:
quote
quasiquote
unquote
unquote-splicing
error
run
rem
apply

3.4 Syntax and Evaluation🔗ℹ

syntax

(quote v)

'v
"Quotes" the given v, without evaluating its contents. A quoted list is passed merely as data, a quoted atom is a "symbol" as per symbol?. Can be shortened to '.

syntax

(quasiquote v)

`v
Same as quote, but can be "escaped" with the unquote and unquote-splicing syntax. Can be shortened to `.

syntax

(unquote v)

,v
When encountered within a a quasiquoted block, evaluates v and quotes its value instead. Can be shortened to ,.

syntax

(unquote-splicing v)

,@v
Similar to unquote, but splices the result of evaluating v in place. Can be shortened to ,@.

procedure

(error message)  nothing

  message : string?
(error symbol message)  nothing
  symbol : symbol?
  message : string?
Halts the program, returning an error of symbol: message where symbol is a quoted value (customarily the name of the current function) and message is a string.

procedure

(run form)  any

  form : any
Evaluates the given form. Usage is not recommended.

syntax

(rem any ...)

Ignores its arguments and returns void. Useful for block comments.

procedure

(apply fun v ... lst)  any

  fun : fn?
  v : any
  lst : list?
Applies fun to the given arguments, as if it had been called with (fun v ... x ...) where the xs are the elements in lst.