[plt-scheme] What causes error: compile: bad syntax; function application is not allowed, because no #%app syntax transformer is bound in: (#%top-interaction . list-of-email)

From: Eli Barzilay (eli at barzilay.org)
Date: Tue Jul 1 08:45:59 EDT 2008

On Jul  1, Stephen De Gabrielle wrote:
> Hi,
> 
> I'm getting an error;
> 
> . compile: bad syntax; function application is not allowed, because no
> #%app syntax transformer is bound in: (#%top-interaction .
> list-of-email)
> 
> What happens is;
> 1.  I run my (module language) program in drscheme,
> 2. It fails with an error (no sense pretending this doesn't happen a lot)
> 3. I type in the name of a variable I want to inspect
> 4. above error occurs.
> 
> I didn't get this error in 3xx, and I don't get it all the time, and
> I'm having trouble working out what is causing it?

When there is a syntax error in the module, it cannot be evaluated.
In 37x, you'd be left with a default REPL, in the mzscheme language;
and in 4.0 you're left with a repl with no language at all.  The code
in svn changed very recently so that you're still left with a working
REPL in the language that your module is written in (assuming that the
error is not in the module syntax, or a reader-level error).  But in
both cases you won't be able to see any of your bindings.

But that's only for syntax errors, with run-time errors things should
be the same, and you should still be able to see previous bindings.

So, my guess is that in

> Welcome to DrScheme, version 4.0.1 [3m].
> Language: Module custom.
> . . car: expects argument of type <pair>; given false

that error comes from some macro.  (If not, then there might be some
other problem, and I'd like to see the code.)

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                  http://www.barzilay.org/                 Maze is Life!


Posted on the users mailing list.