In order to get some more insight into recursion I wrote the following
function but ended up in confusion:

(defn prefix->postfix [expr]
  (if (coll? expr)
    (let [ [op arg1 arg2] expr]
      [ (prefix->postfix arg1) (prefix->postfix arg2) op]))
    expr)

I expected the result to be a vector, such as
(prefix->postfix '(+ 1 2))
;; [1 2 +]

However, the expression passed as an argument is just returned, at
least this is what is looks like:

(prefix->postfix '(* 2 3))
;; --> (* 2 3)

(prefix->postfix '(+ 1 (* 2 3)))
;; --> (+ 1 (* 2 3))


I seems there is still some way to go until I can really 'think in
recursion'.

Therefore I would appreciate if someone could tell me why the above
function is not returning the expected result.

Stefan

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