Quote Operators

Quote Operators — (#, `, @)

Syntax

#s_exp
`s_exp
@s_exp

		

Arguments

s_exp

Any Gamma or Lisp expression.

Returns

Does not evaluate the symbol; it returns the protected expression that follows it.

Description

Normally Gamma evaluates every expression as it parses through the code. The # operator protects the contents of an expression from the evaluator. The ` operator does the same thing, but allows for evaluation of sub-expressions. Any sub-expression tagged with @ operator that occurs within a back-ticked (`) expression will be evaluated.

[Note]

Any error messages involving the @ operator will use the expression _comma_. This is because the @ operator in Gamma corresponds to a comma operator (,) in Lisp syntax. When a Gamma expression is passed to Lisp, the @ operator is converted to a comma. But if the Lisp comma operator is ever read back into Gamma, it is represented by the symbol _comma_ to avoid confusion with the (,) operator used in Gamma function calls.

Examples

Gamma> name = "John";
"John"
Gamma> name;
"John"
Gamma> #name;
name

Gamma> x = 4;
4
Gamma> list (1,x);
(1 4)
Gamma> #list (1,x);
(list 1 x)
Gamma> list (1,#x);
(1 x)
Gamma> `list (1,x);
(list 1 x)
Gamma> `list (1,@x);
(list 1 4)
Gamma>