[ 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
context module. If no inline/1 or inline/2 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 / 1, inline / 2, portray / 3, expand_clause / 2