Did you know ...
Search Documentation:
Predicate if/3
HOME
DOWNLOAD
SWI-Prolog
Sources/building
Docker images
Add-ons
Browse GIT
DOCUMENTATION
Manual
Packages
FAQ
Command line
PlDoc
Bluffers
▶
Prolog syntax
PceEmacs
HTML generation
License
Publications
Rev 7 Extensions
TUTORIALS
Beginner
▶
Getting started
Learn Prolog Now!
Simply Logical
Debugger
Development tools
Advanced
▶
Modules
Grammars (DCGs)
clp(fd)
Printing messages
PlDoc
Web applications
▶
Web applications
Let's Encrypt!
Pengines
Semantic web
▶
ClioPatria
RDF namespaces
Graphics
▶
XPCE
GUI options
Machine learning
▶
Probabilistic Logic Programming
External collections
▶
Meta level tutorials
For packagers
▶
Linux packages
COMMUNITY
IRC
Forum & mailing list
Blog
News
Report a bug
Submit a patch
Submit an add-on
Roadmap (on GitHub)
External links
Contributing
Code of Conduct
Contributors
SWI-Prolog items
COMMERCIAL
WIKI
Login
View changes
Sandbox
Wiki help
All tags
library
dialect
bim.pl
hprolog.pl -- hProlog compatibility library
ifprolog.pl -- IF/Prolog compatibility package
sicstus.pl -- SICStus 3 compatibility library
if/3
rename_module/2
use_module/3
bb_put/2
bb_get/2
bb_delete/2
bb_update/3
is_mutable/1
create_mutable/2
get_mutable/2
update_mutable/2
read_line/1
read_line/2
trimcore/0
prolog_flag/3
sicstus4.pl -- SICStus 4 compatibility library
xsb.pl -- XSB Prolog compatibility layer
yap.pl -- YAP Compatibility module
if
(:If, :Then, :Else)
Same as SWI-Prolog soft-cut construct. Normally, this is translated using goal-expansion.
If
either term contains a !, we use meta-calling for full compatibility (i.e., scoping the cut).