如何编写一个目标,从列表 L 中删除最后三个元素,生成另一个列表 L1?
另外,我将如何编写多个目标来删除列表 L 中的前三个元素和后三个元素,从而产生 L2?
最佳答案
Prolog 它与其他语言有点不同,但它也有一个值得学习的库(标准 ISO):
delete_last_3(L, L1) :-
append(L1, [_,_,_], L).
现在另一个请求很容易:
delete_first_and_last_3(L, L2) :-
append([_,_,_], LT, L), delete_last_3(LT, L2).
测试:
?- delete_last_3([1,2,3,4,5,6,7],X).
X = [1, 2, 3, 4] .
?- delete_first_and_last_3([1,2,3,4,5,6,7,8,9],L).
L = [4, 5, 6] .
关于list - 删除 List L 的最后 3 个元素以在 Prolog 中生成 List L1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7682473/