Турбо-Пролог располагает двумя числовыми типами доменов: целыми и действительными числами. Четыре основные арифметические операции — это сложение, вычитание, умножение и деление, а также целочисленное деление div нахождение остатка целочисленного деления mod для целых чисел.
Стандартными математическими функциями являются следующие предикаты:
sin, cos, tan, round, trunc, abs.
/* Программа 3.3 ”Числа”. Назначение: */
/* демонстрация реализации арифметики. */
predicates
add(integer,integer)
substruct(integer,integer)
multiply(integer,integer)
divide(integer,integer)
fadd(real,real)
fsubstruct(real,real)
fmultiply(real,real)
fdivide(real,real)
goal
write(" Results"), nl, nl,
add(44,23),
substruct(44,23),
multiply(44,23),
divide(44,23),
fadd(12.65,7.3),
fsubstruct(12.65,7.3),
fmultiply(12.65,7.3),
fdivide(12.65,7.3), nl,
write(" All done, bye!").
clauses
add(X,Y):-
Z = X + Y, write("Sum = ",Z), nl.
substruct(X,Y):
Z = X — Y, write("Diff = ",Z), nl.
multiply(X,Y):-
Z = X * Y, write("Pro = ",Z), nl.
divide(X,Y):-
Z = X / Y, write("Quo = ",Z), nl.
fadd(P,Q):-
R = P + Q, write("Fsum = ",R), nl.
fsubstruct(P,Q):-
R = P — Q, write("Fdiff = ",R), nl.
fmultiply(P,Q):-
R = P * Q, write("Fpro = ",R), nl.
fdivide(P,Q):-
R = P / Q, write("Fquo = ",R), nl.
/* Конец программы */
Отметим, что деление целого числа на целое может дать десятичную дробь. В этом случае все знаки вплоть до десятого являются верными.
ГЛАВА 4. ПРЕДИКАТ ОТСЕЧЕНИЯ (!). ПРОГРАММИРОВАНИЕ АЛЬТЕРНАТИВ. ПРАВИЛА ПОВТОРА