-
Notifications
You must be signed in to change notification settings - Fork 1
Ideas
yuretz edited this page Jan 21, 2018
·
1 revision
Inspired by Arrowed Core.logic.
- Detect recursion by tweaking
Invoke()
, passing down the call stack and adding a recursion flag toRelation
. - Wrap
IEnumerable<Context>
into a class that encapsulates two parts of enumeration: a "guaranteed converging" one and a "potentially diverging" one. - In
Relation
'sUnit()
andProduct()
take an advantage of this information to enumerate the converging branches first.
Add automatic "tabling" support to recursive relations.
Could we use knowledge about dependency variables, comparison of Context
diffs added by relations and relation function purity assumption to detect some of the loops generating empty Contexts
infinitely?