Skip to content

Meaning of some annotations #224

Answered by EvgSkv
rvalek asked this question in Q&A
Oct 3, 2022 · 1 comments · 3 replies
Discussion options

You must be logged in to vote

Hi @rvalek !
Sure!

  • @Flag - not used. Was added a while ago, but never used. So nevermind it.

@NoInject, @With and @NoWith are connected with each other.

Some background: a predicate is called injectible if it's defined with a single non-aggregating conjunctive rule. I.e. single rule that doesn't do aggregation and uses only , logical connective, no |. Injectible predicates can be injected (same as inlined) while compilation, i.e. substituted into the body that calls them. If predicate is implementing a computation rather than a table, like F(x) = 2 * x, then injection is the only way to use it.
However a predicate may be injectible and concrete (i.e. computable as a table) at the same t…

Replies: 1 comment 3 replies

Comment options

You must be logged in to vote
3 replies
@rvalek
Comment options

@EvgSkv
Comment options

@rvalek
Comment options

Answer selected by rvalek
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants