Определить предикат для преобразования списка цифр в список соответствующих слов - Prolog

Узнай цену своей работы

Формулировка задачи:

Определите предикат translate(?List1,?List2) для преобразования списка цифр (в дан-ном случае цифра – это целое число от 0 до 9) в список соответствующих слов, напри-мер, следующим образом: translate([3,5,1,3],[three, five, one, three]).
Листинг программы
  1. translate(1,один).
  2. translate(2,два).
  3. translate(3,три).
  4. translate(4,четыре).
  5. translate(5,пять).
  6. translate(6,шесть).
  7. translate(7,семь).
  8. translate(8,восемь).
  9. translate(9,девять).
  10. translate(0,ноль).
  11.  
  12. translate([X|Y],[X1|Y1]):-
  13. translate(X,X1),
  14. translate(Y,Y1).
Пишу на swi-prolog. Не могу найти в чем ошибка при -? transtlate([1,2],[один,два]) пишет false

Решение задачи: «Определить предикат для преобразования списка цифр в список соответствующих слов»

textual
Листинг программы
  1. translate([], []).

Объяснение кода листинга программы

  1. Задается пустой список, который будет результатом работы программы, и пустой список, который будет содержать промежуточные значения.
  2. В первую очередь проверяется базовый случай, когда входной список пустой. Если это так, то результатом будет пустой список слов.
  3. Если базовый случай не выполнен, то из списка удаляется первый элемент и добавляется в конец списка промежуточных значений.
  4. Затем рекурсивно вызывается функция translate для оставшейся части списка, передавая в качестве аргумента список промежуточных значений.
  5. Результатом работы функции будет список слов, полученный путем преобразования всех элементов входного списка.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы