- (ck s 'VAL)syntax
- (ck s `VAL)syntax
- (ck s (OP ...))syntax
This is the core ck macro, which implements the CK abstract machine. In version 0.3.0 and later, this macro has been enhanced to support quasiquotation.
This macro's public interface has three shapes: with a quoted value, with a quasiquoted value, and with a CK-macro call.
- s
- The stack, used internally by this macro. When initially invoking this macro, s should be the empty list, e.g. (ck () (c-cons '+ '(1 2))).
- 'VAL
- A quoted value. Can be a quoted list, symbol, or other literal value. The quote is necessary, even for literal values like strings, numbers, and booleans.
- `VAL
- A quasiquoted value. This is syntactic sugar for (c-quasiquote 'VAL).
- (OP ...)
- A CK-macro call without the s argument, such as (c-cons '+ '(1 2)). Nested calls are allowed, such as (c-cons '+ (c-list '1 '2)).