Я пытаюсь написать программу Prolog так, чтобы при наличии списка чисел, подобных [1, 2, 3]
, он преобразовывал их в список слов, представляющих эти числа ['one', 'two', 'three']
.
Пока мой код:
totext(0, 'zero').
totext(1, 'one').
totext(2, 'two').
totext(3, 'three').
totext(4, 'four').
totext(5, 'five').
totext(6, 'six').
totext(7, 'seven').
totext(8, 'eight').
totext(9, 'nine').
translate([], []).
translate([Head|Rest], [TranslatedHead|TranslatedRest]) :-
totext(Head, TranslatedHead),
translate(Rest, TranslatedRest).
Когда я загружаю gprolog
и проверяю файл, если я делаю:
translate([], X).
Я правильно получаю:
X = []
yes
Но когда яdo
translate([1,2], X).
Я получаю:
uncaught exception: error(existence_error(procedure,totext/0),translate/0)
Я очень плохо знаком с Прологом (это моя первая программа на Прологе), и я понятия не имею, что здесь происходит не так.Есть идеи?Спасибо.