12.4.1.1 Non-deterministic Foreign Predicates
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • Foreign Language Interface
        • The Foreign Include File
          • Argument Passing and Control
            • Non-deterministic Foreign Predicates
              • PL_retry()
              • PL_retry_address()
              • PL_foreign_control()
              • PL_foreign_context()
              • PL_foreign_context_address()
              • PL_foreign_context_predicate()
    • Packages
Availability:C-language interface function
(return) foreign_t PL_retry(intptr_t value)
The foreign function succeeds while leaving a choice point. On backtracking over this goal the foreign function will be called again, but the control argument now indicates it is a‘Redo' call and the macro PL_foreign_context() returns the handle passed via PL_retry(). This handle is a signed value two bits smaller than a pointer, i.e., 30 or 62 bits (two bits are used for status indication). Defined as return _PL_retry(n). See also PL_succeed().