Undeclared predicate, misspelling or not supported on chosen platform length - Prolog

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

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

Здравствуйте! Помогите, пожалуйста, исправить ошибку. Задача: заменить K элементов с конца на заданную константу.
Листинг программы
  1. domains
  2. i = integer
  3. list = i*
  4. predicates
  5. nondeterm lenghtl (list, i)
  6. nondeterm replace(list, list, i, i)
  7. nondeterm repl(list, list, i, i, i)
  8. clauses
  9. lenghtl([],_):- !.
  10. lenghtl([H|T], X):- X1=X+1, lenghtl( T, X1). %подсчет длины списка
  11. %Находим длину списка X, считаем, с какой позиции нужно будет заменять члены списка Х1=Х-К
  12. %repl проходится по всему списку и заменяет все символы, начиная с Х1, на Const
  13. replace([H|T], [H|T1], Const, K):- lengthl ([H|T], X), Pos = 1, X1=X-K, repl([H|T], [H|T1], Const, X1, Pos),!.
  14. %Начинаем идти по списку. Если рассматриваемый элемент стоит раньше Х1 или на его месте,
  15. %то записываем его неизменным во второй список
  16. repl([H|T], [H|T1], Const, X, Pos):- Pos <= X, %Pos - позиция в списке.
  17. Pos1 = Pos + 1,
  18. repl(T, T1, Const, X, Pos1), !.
  19. %замена всех следующих элементов списка
  20. repl([H|T], [Const|T1], Const, X, Pos):- repl(T, T1, Const, X, Pos).
  21. %если начальный список пройден до конца, заканчиваем рекурсию
  22. repl([], _, _, _, _):- !.
  23. goal replace([1, 2, 3, 4, 5], L, 0, 3).

Решение задачи: «Undeclared predicate, misspelling or not supported on chosen platform length»

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

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


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

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

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

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

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

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