On Thu, Nov 5, 2009 at 7:48 PM, Don <josereyno...@gmail.com> wrote:

> I'm having problems with a recursive call I make.  The problem (as far
> as I gather) is that I have two recursive calls within a condition and
> I'm not sure if the second recursive call is being made.
>

It is, but some results are being discarded.


>        (do
>            (let [rslt1 (dp (subvec crds1 0 (+ index 2)) eps)
>                  rslt2 (dp (subvec crds1 index end) eps)]
>            (let [rslt (into (subvec rslt1 0 (- (count rslt1) 2))
>                                (subvec rslt2 0 (count rslt2)))]
> rslt)))
>

Change that to this:

         (let [rslt1 (dp (subvec crds1 0 (+ index 2)) eps)
               rslt2 (dp (subvec crds1 index end) eps)]
           (into (subvec rslt1 0 (- (count rslt1) 2))
             (subvec rslt2 0 (count rslt2)))))

Clojure's "let" doesn't work like in an imperative language.

Instead of

let x = this
let y = foo(x)
return quux(y)

you have

(let [x this
      y (foo x)]
  (quux y))

that is, you put the code that uses the things you're letting inside of the
let's parentheses, but after the vector with the bindings.

--~--~---------~--~----~------------~-------~--~----~
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