Вырезать из списка подсписок - Prolog
Формулировка задачи:
Здравствуйте. Имеется следующее задание:
Я пытался сделать что-то в таком духе:
Дан список и числа N и M. Вырезать из списка подсписок от элемента N до элемента M: 2 4 [1,2,3,4,5,6,7] —> [2,3,4]
То есть последовательно уменьшать N и M, что бы понимать когда вырезать, а когда нет. Но что-то у меня не работает код. Выдает false.
Решение задачи: «Вырезать из списка подсписок»
textual
Листинг программы
delete([], _, _, []). delete([_|Tail], N, M, ResultTail):- delete(Tail, N, M, ResultTail), N==1, M==0. delete([Head|Tail], N, M, [Head|ResultTail]):- M1 is M-1, delete(Tail, N, M1, ResultTail), N==1, M>0. delete([_|Tail], N, M, ResultTail):- N1 is N-1, M1 is M-1, delete(Tail, N1, M1, ResultTail), N>1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д