i forgot about the wiki.  why is this maintained in a totally different page
from clojure.org?  I should be looking at these examples:

http://en.wikibooks.org/wiki/Clojure_Programming/Examples/API_Examples

On Mon, Jan 12, 2009 at 9:15 PM, e <evier...@gmail.com> wrote:

> 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 
> <weavejes...@googlemail.com>wrote:
>
>>
>> On Jan 12, 5:24 am, e <evier...@gmail.com> 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 clojure@googlegroups.com
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