[ Predicate Database and Compiler | Reference Manual | Alphabetic Index ]
expand_goal(+Term, -TransTerm)
Apply goal inline expansion to Term
- Term
- A callable term.
- TransTerm
- A variable or callable term.
Description
Applies a goal inline expansion to Term, if any is visible in the
caller module. If no inline declaration is visible, TransTerm is
identical to Term.
Normally, goal inline expansion is performed implicitly by the compiler.
For certain meta-programming applications (e.g. for writing other
compilers) it can be performed explicitly using expand_goal/2.
Goal inline expansion is the third transformation which is applied during
the compilation process: macro expansion, then clause expansion, then
goal inline expansion.
Modes and Determinism
Modules
This predicate is sensitive to its module context (tool predicate, see @/2).
Examples
[eclipse 1]: lib(fd).
yes.
[eclipse 5]: expand_goal(X#>Y, G).
X = X
Y = Y
G = fd_arith : fd_gec(X, -1, Y, -1, 0)
yes.
See Also
inline / 2, portray / 3, expand_clause / 2