В обоих ваших примерах он используется как инфиксный оператор , но имеет другое, не связанное с этим значение.
В первом правиле вы указываете, что это просто разделитель, как уже указывал Мог.Другое использование, в основном для целей документирования, это как предикатный индикатор.Полезно, потому что у нас могут быть разные предикаты с одним и тем же функтором.
Выражения - это просто синтаксический сахар для двоичных или унарных отношений, где функтор является оператором.Значение таких выражений определяется контекстом: например, is / 2 заботится об арифметической оценке выражений: здесь оператор выполняет ожидаемую арифметическую операцию
?- X is 10 / 3.
X = 3.3333333333333335.
Встроенный current_op позволяет проверять определения операторов.Попробуйте
?- current_op(Precedence,Associativity,/).
Precedence = 400,
Associativity = yfx .
У нас может быть предикат с именем /.Глупый пример:
/(A, B) :- format(A, B).
или лучше
A / B :- format(A, B).
можно использовать в качестве сокращения, когда у нас много форматов.Такое использование не приветствуется, что приводит к затруднению чтения программ, но, учитывая такое определение, это действительное правило:
?- 'hello ~s' / [world].
hello world