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
Predicates and Functions
Picat has two types of pattern-matching rules: the non-backtrackable rule
Head, Cond => Body.
and the backtrackable rule
Head, Cond ?=> Body.
and later in
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
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
?=> and does not specifically use the proper syntax for the operators.
Do the Picat operators
?=> have a formal name in SWI-Prolog?
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
?=> when used with SWI-Prolog. Still interested in what Jan W. notes.