Sorry about the erroneous function, I think this is more likely what you want:
(defn count-leaves [[left & right :as tree]] (if (seq tree) (+ (if (sequential? left) (count-leaves left) 1) (count-leaves right)) 0)) user> (count-leaves []) 0 user> (count-leaves [1 [2 [3]]]) 3 user> On Feb 15, 10:55 am, wubbie <sunj...@gmail.com> wrote: > Hi, > > Trying to convert to clojure but stumbled on it... > > (defun count-leaves (tree) > (if (atom tree) > 1 > (+ (count-leaves (car tree)) > (or (if (cdr tree) (count-leaves (cdr tree))) > 1)))) > > > (count-leaves ’((a b (c d)) (e) f)) > > 10 > > My clojure version is: > > user=> (defn count-leaves > [tree] > (if (seq tree) > (+ (count-leaves (first tree)) > (or (if (rest tree) (count-leaves (rest tree))) > 1)) > 1)) > #'user/count-leaves > user=> (count-leaves [1 2 3]) > java.lang.IllegalArgumentException: Don't know how to create ISeq > from: Integer (NO_SOURCE_FILE:0) > > But not working. I'm wondering why... > > thanks, > -sun --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---