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

+1 vote
in core.logic by

I need to define predicates to which I can later (and from other namespaces) attach further clauses (so not just facts). I couldn't find any such functionality in the source. Due to the extensive use of macros, hacking such a system onto core.logic from the outside is extremely difficult, if not impossible (to me at least).

I'd love to implement this myself too, if given an OK and rough direction.

3 Answers

0 votes

Comment made by: werg

I actually did manage to tack on a prototype that covers the basic behavior I would like to see: (link: https://github.com/werg/herpderp/blob/master/src/herpderp/multo.clj)

I use a set stored in a ref in the defne's metadata to manage dynamic changes to the clauses. Upon changing that set using defclause I use eval to re-define the var using defne.

This might not be nice, but allows me to continue developing features against it.

0 votes

Comment made by: dnolen

I don't think the current implementation can really support this and I don't think it's wise to try to hack around the current implementation. I'd be willing to consider a comprehensive solution if someone is willing to do the legwork.

0 votes
Reference: https://clojure.atlassian.net/browse/LOGIC-35 (reported by alex+import)