ahhhhhhh I see.  That makes sense.  So it's not like procedural
programming.  You could see what I was trying to understand.

I didn't want case/swtich semantics.  like the (cond) or if, else if
style.  I was trying to return at the first true thing, but it doesn't
work like that.  it always gets to expr3.  the thing I thought was
returning after expr1 was just an opportunity to do a side effect.
Thanks.


On Jan 11, 1:26 pm, "Eric Lavigne" <lavigne.e...@gmail.com> wrote:
> > this seemed like a clean, nice way to merge to sorted lists into one
> > sorted list.  I'm not getting clojure syntax, it seems:
>
> > (defn listmerge [l1 l2]
> >  (let [l1first (first l1) l2first (first l2)]
> >    (if (= l1first nil) l2)
> >    (if (= l2first nil) l1)
> >    (if (< l1first l2first)
> >      (cons l1first (listmerge (rest l1) l2))
> >      (cons l2first (listmerge (rest l2) l1)))
> >    ))
>
> > psuedocode:
>
> > listmerge (list l1, list l2):
> >   if l1 is empty, return l2
> >   if l2 is empty return l1
> >   if l1[0] is less than l2[0],
> >        return l1[0] + listmerge(rest(l1), l2)
> >   otherwise return l2[0] + listmerge(rest(l2), l1)
>
> Read James' answer first. I just wish to add something.
>
> When you say (let [bindings...] expr1 expr2 expr3) the result is the return
> value of expr3. expr1 and expr2 return values are relevant, so the only
> reason to have expr1 and expr2 is if they have side-effects, such as
> changing the value of a Ref or updating a database or printing to the
> terminal.
>
> --
> Education is what survives when what has been learned has been forgotten.
>
>                    - B. F. Skinner
--~--~---------~--~----~------------~-------~--~----~
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