I am trying to write a function (for use in a macro) that replaces a  
given keyword in a form by a given symbol, i.e.

(replace-symbol :foo :bar form)

should return the form with all occurences of :foo replaced by :bar.  
This turned out to be surprisingly difficult. I started out like this:

(defn replace-symbol [original replacement form]
    (if (= form original)
        replacement
        (if (islist? form) ...)))

But there is no islist?, nor anything that looks equivalent. So how  
do I test if form is a list? Or a vector? Or a map? For processing  
general forms, I'd need to handle all of these, right? Or is there a  
simpler way to do it?

Konrad.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to