I have a problem in my program.  When I add something to a map, it
also seems to get added to a completely different map.  I catch the
error with an assert on the line immediately following so there isn't
much room for my program to do something wrong.  The program does
quite a bit of processing of the global variables before this point in
the code.  I am using Clojure 1.1.  Does anybody know of a known bug
in Clojure that might cause this problem?  Any advice on how to fix
it?  Also, how can I get a copy of version 1.2 to see if it fixes the
problem?  I would be grateful for any help.  The code looks like this:

(defn foo [ link global-ref-map1 global-ref-map2 global-ref-map3
count ]
     (let [ stuff (:tag link)
            local-ref-map1 (ref {})
            local-ref-map2 (ref {})
            local-ref-map3 (ref {})
            local-ref-map4 (ref {})
            stuff-struct (struct bar stuff nil nil :label) ]

            (println "debugging line")

            (if ...condition... )
              (do
                (println "test true, stuff = " stuff)
                (dosync
                    (alter local-ref-map1 assoc stuff stuff-struct))

                (assert (not (@global-ref-map2 stuff)))
                                 ...

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