• Places
    • Home
    • Graphs
    • Prefixes
  • Admin
    • Users
    • Settings
    • Plugins
    • Statistics
  • Repository
    • Load local file
    • Load from HTTP
    • Load from library
    • Remove triples
    • Clear repository
    • RDF quality heuristics
  • Query
    • YASGUI SPARQL Editor
    • Simple Form
    • SWISH Prolog shell
  • Help
    • Documentation
    • Tutorial
    • Roadmap
    • HTTP Services
  • Login

6.6.1 Explicit manipulation of the calling context
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • Modules
        • Overruling Module Boundaries
          • Explicit manipulation of the calling context
            • @/2
    • Packages
Availability:built-in
Source@(:Goal, +Module)
Execute Goal, setting the calling context to Module. Setting the calling context affects meta-predicates, for which meta arguments are qualified with Module and transparent predicates (see module_transparent/1). It has no implications for other predicates.

For example, the code asserta(done)@world is the same as asserta(world:done). Unlike in world:asserta(done), asserta/1 is resolved in the current module rather than the module world. This makes no difference for system predicates, but usually does make a difference for user predicates.

Not that SWI-Prolog does not define @ as an operator. Some systems define this construct using op(900, xfx, @).

ClioPatria (version V3.1.1-40-g9d9e003)