Since SWI-Prolog is now incorporating the Picat operator =>/2
I was wondering if it has a formal name for use in SWI-Prolog?
I checked the Picat User’s Guide and the closest I found was in
Chapter 4
Predicates and Functions
Picat has two types of pattern-matching rules: the non-backtrackable rule
Head, Cond => Body.
and the backtrackable ruleHead, Cond ?=> Body.
and later in
Appendix I
Appendix: Grammar
predicate_rule ->
head ["," condition] ("=>" | "?=>") body eor
head (":-" | "-->") body eor
nonbacktrackable_predicate_rule ->
head ["," condition] "=>" body eor
In the tutorial it notes
Core logic programming concepts
Implicit pattern-matching and explicit unification
I tend to find Implicit pattern-matching
more descriptive than =>
but at present I take it that, that would still include both the backtracking and not-backtracking variations.
The other interesting item of note upon first reading is that Picat also uses the name predicate with =>
or ?=>
.
Anyway, without a proper unique name for the operators in SWI-Prolog, this could become very confusing when trying to understand this when a less informed person ask a question about =>
or ?=>
and does not specifically use the proper syntax for the operators.
So
Do the Picat operators =>
and ?=>
have a formal name in SWI-Prolog?
EDIT
As I write this I see that Jan W. is also writing a reply.
The SWI-Prolog manual does use the name Single Sided Unification rules
so I guess that will be the formal name for =>
and ?=>
when used with SWI-Prolog. Still interested in what Jan W. notes.