Integer | 6758 |
---|---|
Variable | FooBar11 |
Record | FooBar[ expression, expression, expression…] |
Equal | expression = expression |
---|---|
AND | predicate & predicate & predicate … |
OR | predicate | predicate | predicate … |
Exists | ~ variable predicate |
Call | FooBar{ expression, expression, expression…} |
PRIM_True{}
True{}
is an alias to this.PRIM_False{}
False{}
is an alias to this.PRIM_FieldsHeadTail{
record,
head,
tail}
Succeeds if taking “tail” (which must be a record expression) and prepending “head” as a new field yields “record” (which must also be a record expression). For example, PRIM_FieldsHeadTail{Tuple[1, 2, 3], 1, Tuple[2, 3]}
succeeds.
In the usual logic-programming style, this predicate can be used both to join a head and a tail together to make a new record, or to split a record apart to make a head and a tail. Note that either the “record” argument or the “tail” argument must be a record, or the predicate point-blank fails. (It won't matter if it's a variable which later becomes a record; by then, the predicate has already failed.)