Hi Jeremy,

I'm not just thinking about Clojure from the perspective of a Java
person, but also from the perspective of someone new to programming
and for kids. For the latter, it's best if languages have maximum
friendliness in error wording and error messages pointed at a specific
character position on a line, which is common in many languages now.

On Aug 2, 6:53 am, Jeremy Heiler <jeremyhei...@gmail.com> wrote:
> On Tue, Aug 2, 2011 at 3:11 AM, recurve7 <dan.m...@gmail.com> wrote:
> > Here's one example where recursion and lack of positional error
> > feedback make it hard for me, as someone coming from Java, to spot the
> > error (and seeing "ClassCastException" threw me off and had me
> > wondering where/how I had done something like that):
>
> > user=> (defn fac [n] (if (= n 1) 1 (* n fac (- n 1))))
> > #'user/fac
> > user=> (fac 3)
> > java.lang.ClassCastException: user$fac cannot be cast to
> > java.lang.Number (NO_SOURCE_FILE:0)
>
> What were you thoughts *before* you asked Google?
>
> As being someone who is also coming from Java, this error message
> seems fairly clear. You've used `fac` when it expects a number. Now,
> assuming you know how `defn` works, it must be the second instance of
> `fac` that is causing the issue. Then, since it's expecting a number,
> assume it is, and then ask yourself why it wouldn't complain if it was
> a number. Then go from there.
>
> Also, keep in mind you're in the REPL, where line numbers aren't all
> that useful.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to