Hi, I'm trying to learn Lisp on a Clisp/Slime setup.
Looking into the world of macros I try to input this macro to repl.
(defmacro Square (X)
'(* ,X ,X))
Getting this answer....
READ: comma is illegal outside of backquote
[Condition of type SYSTEM::SIMPLE-READER-ERROR]
Restarts:
0: [ABORT] Abort SLIME compilation.
1: [ABORT] Return to sldb level 1.
2: [ABORT] Abort SLIME compilation.
3: [ABORT] Abort handling SLIME request.
Backtrace:
0: frame binding variables (~ = dynamically):
| ~ SYSTEM::*FASOUTPUT-STREAM* <--> #<OUTPUT BUFFERED FILE-STREAM
CHARACTER #P"/Users/arnehans/test.fas">
1: EVAL frame for form (SWANK:COMPILE-FILE-FOR-EMACS
"/Users/arnehans/test.lisp" T)
2: EVAL frame for form (SWANK:COMPILE-FILE-FOR-EMACS
"/Users/arnehans/test.lisp" T)
3: EVAL frame for form (SWANK:START-SERVER "/tmp/slime.18994")
4: EVAL frame for form (SWANK:START-SERVER "/tmp/slime.18994")
Leaving me clueless :-(
regards
-arne
Arne Hanssen wrote:
> Hi, I'm trying to learn Lisp on a Clisp/Slime setup.
> Looking into the world of macros I try to input this macro to repl.
>
> (defmacro Square (X)
> '(* ,X ,X))
>
> Getting this answer....
>
> READ: comma is illegal outside of backquote
> [Condition of type SYSTEM::SIMPLE-READER-ERROR]
You want quasiquote (backquote, `), not quote ('). Unquoting only makes
sense inside quasiquoted expressions.
Paul Khuong
Arne Hanssen <·················@runbox.cm> writes:
> Hi, I'm trying to learn Lisp on a Clisp/Slime setup.
> Looking into the world of macros I try to input this macro to repl.
>
> (defmacro Square (X)
> '(* ,X ,X))
>
> Getting this answer....
>
> READ: comma is illegal outside of backquote
> [Condition of type SYSTEM::SIMPLE-READER-ERROR]
There are two kinds of quote '`'`'`'`'`'
You've got the ordinary kind of quote '''''''
On my keyboard it is on the left sharing a key with @
You have to find backquote `````````
On my keyboard it is top left.
You've probably notice this already :-)
Alan Crowe
Edinburgh
Scotland