translate( 1 2 9 one two nine ) prolog programming
Prolog Program to Translate Numbers to Words
% Base case: translating 0 to zero
translate(0, zero).
% Translating single-digit numbers
translate(1, one).
translate(2, two).
translate(3, three).
translate(4, four).
translate(5, five).
translate(6, six).
translate(7, seven).
translate(8, eight).
translate(9, nine).
% Translating two-digit numbers
translate(N, Word) :-
N >= 10, N =< 19,
translate_teens(N, Word).
translate(N, Word) :-
N >= 20, N =< 99,
Tens is div(N, 10),
Units is mod(N, 10),
translate_tens(Tens, TensWord),
translate(Units, UnitsWord),
atomic_list_concat([TensWord, UnitsWord], ' ', Word).
% Translating two-digit numbers from 10 to 19
translate_teens(10, ten).
translate_teens(11, eleven).
translate_teens(12, twelve).
translate_teens(13, thirteen).
translate_teens(14, fourteen).
translate_teens(15, fifteen).
translate_teens(16, sixteen).
translate_teens(17, seventeen).
translate_teens(18, eighteen).
translate_teens(19, nineteen).
% Translating tens digits
translate_tens(2, twenty).
translate_tens(3, thirty).
translate_tens(4, forty).
translate_tens(5, fifty).
translate_tens(6, sixty).
translate_tens(7, seventy).
translate_tens(8, eighty).
translate_tens(9, ninety).
This Prolog program translates numbers to words. It defines rules for translating single-digit numbers, two-digit numbers, and numbers from 10 to 19. The translate
predicate is used to translate a given number to its corresponding word. The program uses recursion and arithmetic operations to handle two-digit numbers.
To use this program, you can consult it in a Prolog interpreter and then query the translate
predicate with a number as the first argument and a variable as the second argument. For example, translate(12, Word)
will unify Word
with the atom twelve
.