Hallo,
William Cook wrote:
Alex,
Scheme is an imperative language, and anyway I'd like to see my let-bindings when I'm inside a function. I don't believe the claims that Scheme doesn't need a traditional debugger because it is somehow different. It is true that traditional debuggers don't work for Haskell, but they do for Scheme.
I've been programming on and off in Lisp and Scheme for almost 30 years (and yes, i started young!), so I'm not exactly a newbie. What makes me an outsider in this community is that I never got excited about Emacs.
I am sorry I misunderstood you. But I stand to my claim. Of course Scheme is unlike Haskell and one can program thus:
(define (my-func a b) (set! a b) (let ((c (something)) (d a)) (set! c (other thing) ...))
There is not any technical problem with that. But as I said before, *well-written* Scheme programs are not a sequence of instructions. Even loops are functions calls. State-machines change state with function calls, not assigning a variable. You may need to put breakpoints inside a function, but I did not ever had the need. I am trying to just give advice here, please forgive me if I am being too dense.
Lisp is not as much functional because of the lack of proper tail call optimisations, and is much more imperative.
Cheers, -alex http://www.ventonegro.org/