Списки и рекурсия - Prolog

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

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

Помогите пожалуйста, по 2 числам требуется создать список натуральных чисел, элементы которого лежат внутри этого диапазона, например ввели 2 и 8, ответ [3,4,5,6,7], а если ввели 8 и 2 то наоборот [7,6,5,4,3], не понимаю как создать предикат для проверки сразу двух условий, для сравнения n>m и n<m, пишу на прологе 5.2

Решение задачи: «Списки и рекурсия»

textual
Листинг программы
domains
list = integer*
 
predicates
generate(integer,integer,list)
generate_plus(integer,integer,list)
 
clauses
generate(A,B,L) :- generate_plus(A, B, [_|L]).
 
generate_plus(A, A, []) :- !.
generate_plus(A, B, [A|T]) :-
   A > B,
   !,
   AA = A - 1,
   generate_plus(AA, B, T).
generate_plus(A, B, [A|T]) :-
   A < B,
   AA = A + 1,
   generate_plus(AA, B, T).
   
goal
   generate(8, 2, L1), write(L1), nl,   
   generate(2, 8, L2), write(L2), nl.

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


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

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

6   голосов , оценка 3.5 из 5
Похожие ответы