Casting SPELs
|
Now we're going to learn an incredibly powerful feature of
Lisp: Creating SPELs!
|
SPEL is short for "Semantic Program Enhancement Logic" and lets
us create new behavior inside the world of our computer code
that changes the Lisp language at a fundamental level in order
to customize its behavior for our needs- It's the part of Lisp
that looks most like magic. To enable SPELs, we first need to
activate SPELs inside our Lisp interpreter (Don't worry about
what this line does - advanced Lispers should read my short
essay.)
|
(defmacro defspel (&rest rest) `(defmacro ,@rest))
|
Ok, now that they're enabled, let's cast our first spell,
called walk:
|
(defspel walk (direction)
`(walk-direction ',direction))
|
What this code does is it tells the Lisp interpreter that the
word walk is not actually the word walk but
the word walk-direction and that the word
direction actually has a quote in front of it, even
though we can't see it. Basically we can sneak in some special
code inbetween our program and the interpreter that changes our
code into something else before it is interpreted.
|
<< begin
< previous -
next >
end >>
|