true
(mkconj/2) and false
(mkdisj/2). Note that a false
encountered in a conjunction does not cause the conjunction to
be false
, i.e. semantics under side effects are preserved.
The Prolog `, and
;` operators are of type xfy
, i.e. right
associative. These predicates preserve this grouping. For example,
?- mkconj((a,b), c, Conj) Conj = (a,b,c)