home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!think.com!barmar
- From: barmar@think.com (Barry Margolin)
- Newsgroups: comp.lang.scheme
- Subject: Re: wots going on here!?
- Date: 31 Aug 1992 18:05:50 GMT
- Organization: Thinking Machines Corporation, Cambridge MA, USA
- Lines: 36
- Message-ID: <17tn1uINNkij@early-bird.think.com>
- References: <1187.9208311520@subnode.aiai.ed.ac.uk> <17timvINN7b8@agate.berkeley.edu>
- NNTP-Posting-Host: telecaster.think.com
-
- Everyone here is flaming about whether automatically invoking the debugger
- is a good or bad idea for novice programmers. Maybe that's an interesting
- topic to debate, but I think it's completely orthogonal to the problem the
- original poster was complaining about. His problem was that the
- description of the error was incredibly obtuse, using terms and syntax that
- a new programmer is not likely to recognize. Considering that Scheme is
- heavily touted as a teaching language, the error messages should be more
- reasonable. He saw:
-
- Application of inapplicable object #[undefined-value]
-
- There is no environment available;
- using the current REPL environment
- ;Package: (user)
-
- The user has to infer that #[undefined-value] is the default value of a
- variable, and that "Application of inapplicable object" means that he tried
- to use it as a function. And even once he figures out what that means, it
- doesn't tell him where the undefined function came from. Then there's the
- stuff about the environment, package, and the "REPL". The following (from
- Lucid CL) is somewhat more reasonable (although it would probably have to
- be augmented to include Scheme-specific information):
-
- >>Error: The function FOOBAR is undefined
-
- SYMBOL-FUNCTION:
- Required arg 0 (S): FOOBAR
- :C 0: Try evaluating #'FOOBAR again
- :A 1: Abort to Lisp Top Level
-
- ->
- --
- Barry Margolin
- System Manager, Thinking Machines Corp.
-
- barmar@think.com {uunet,harvard}!think!barmar
-