On Jul 6, 8:08 pm, David Sletten <da...@bosatsu.net> wrote: > On Jul 6, 2011, at 10:58 PM, Conrad Taylor wrote: > > > > > > > > > > > On Jul 6, 7:33 pm, Benny Tsai <benny.t...@gmail.com> wrote: > >> Could you please post the entire form, including the code surrounding the > >> cond form (since total, amount, and country need to be defined somewhere)? > > > Benny, that was just sample code to zero in on the initial issue. I'm > > working > > through the SICP with a lot of pain but here's what I have so far: > > > (def us-coins (list 50 25 10 5 1)) > > (def uk-coins (list 100 50 20 10 5 2 1 0.5)) > > > (defn first-denomination [ coin-values ] (first coin-values)) > > > (defn except-first-denomination [ coin-values ] (rest coin-values)) > > > (defn no-more? [coin-values] (nil? coin-values)) > > > (defn cc [amount coin-values] > > (cond > > (= amount 0) 1 > > (or (< amount 0) (no-more? coin-values)) 0 > >  :else (+ (cc amount (except-first-denomination > > coin-values)) > > (cc (- amount (first-denomination coin- > > values)) coin-values)))) > > Part of the problem is that Clojure uses a slightly different syntax for > 'cond' than Scheme (and Common Lisp) do. In particular, Common Lisp more > frequently allows for side effects, so rather than a single consequent value > Common Lisp's COND encloses its consequent expressions in a an additional > layer of parentheses. Clojure discourages side effects, so it's reasonable to > think in terms of a single expression as a consequent. The need for enclosing > parentheses disappears. > > Beware that the predicate 'nil?' tests whether an object is 'nil'. You > probably want to use the predicate 'empty?' to test whether your coin list is > empty. > > Have all good days, > David Sletten
David, thanks for the advice here and things appear to be working now. It's not optimized but it's functional. Anyway, I don't if the tabs caused issues for Clojure but I know I had issue with other languages. Thanks all, -Conrad -- 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