I give up. I don't know what's wrong and I don't want to just punt and go
on to a totally different implementation. Can while loops have more that
one statement in the body? Maybe it's something dumb.
I'm not turning my back on what people say about loop/recur or functional
programming. I'm just trying to accomplish my original goal of constructing
an iterative-looking example. I get the added benefit of learning how
reference dereference works, while loops . . .and how to read the errors.
Or not. I'm not making headway.
I just want to get this out of my system, but I'm getting some class cast
exception and no useful line number. Can you not set a variable to a
vector?
the definition passes (compiles?), but when I call it I get a runtime
error. I've made the code as simple (broken down) as possible. listmerge
works (because I didn't write it myself).
(defn listmerge [l1 l2]
(let [l1first (first l1) l2first (first l2)]
(cond
(empty? l1) l2
(empty? l2) l1
(< l1first l2first)
(cons l1first (listmerge (rest l1) l2))
:else
(cons l2first (listmerge (rest l2) l1))))))
(defn msort [toSort]
(with-local-vars [my-list (for [x toSort] [x]) l1 0 l2 0]
(while (rest @my-list)
(var-set l1 (first @my-list))
(var-set l2 (second @my-list))
(var-set my-list (drop 2 @my-list))
(var-set my-list (concat @my-list (listmerge [...@l1] [...@l2]))))
@my-list))
(msort [64 45 2 67 1])
Thanks again.
On Mon, Jan 12, 2009 at 1:10 PM, James Reeves <[email protected]>wrote:
>
> On Jan 12, 5:24 am, e <[email protected]> wrote:
> > It's funny, whenever I tried to be all safe like this and take the time
> to
> > make stuff safe in C++, coworkers would say, "we are grown-ups. At some
> > point you gotta stop being a paranoid programmer.
>
> Given that software bugs are a very common occurrence, I'd say we're
> far from being paranoid enough :)
>
> > Another thing is to make the common case easy . . . .and uh, mutable
> local
> > variables are pretty darn common,
>
> In imperative languages, yes, but not really in functional languages.
> I've written a fair amount of Clojure code, and I haven't used with-
> local-vars once.
>
> - James
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---