[LOGIC-35] Core.logic equivalent of multimethods Created: 02/Apr/12 Updated: 28/Dec/12 |
|
| Status: | Open |
| Project: | core.logic |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Minor |
| Reporter: | Gabriel Pickard | Assignee: | David Nolen |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | enhancement | ||
| Description |
|
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. |
| Comments |
| 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. |