[LOGIC-35] Core.logic equivalent of multimethods Created: 02/Apr/12 Updated: 28/Dec/12
|Reporter:||Gabriel Pickard||Assignee:||David Nolen|
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.
|Comment by Gabriel Pickard [ 03/Apr/12 6:27 PM ]|
I actually did manage to tack on a prototype that covers the basic behavior I would like to see: 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.
|Comment by David Nolen [ 28/Dec/12 12:48 AM ]|
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.