Welcome! Please see the About page for a little more info on how this works.

0 votes
in core.logic by
This works correctly in core.logic for clojure:

(run 1 [q]
     (fresh [v]
            (== v 1)
            (== {:x v} q)))

In ClojureScript, I get this though:

({:x <lvar:v_4>})

3 Answers

0 votes

Comment made by: norman

The clojurescript code did not implement -walk-term for PersistentArrayMap.

I've copied the PersistentHashMap implementation for PersistentArrayMap. Note: the current implementation (walk-term-map**) does not actually work for hash maps due to the use of -next and -first. Changing these to next and first would fix this for hash maps, but I'm not sure if this has any implications in clojurescript or not.

0 votes

Comment made by: dnolen

Norman, do you mean -next, -first doesn't work for array maps?

0 votes
Reference: https://clojure.atlassian.net/browse/LOGIC-142 (reported by pangloss)