home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / lang / scheme / 2122 < prev    next >
Encoding:
Internet Message Format  |  1992-08-31  |  1.9 KB

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