【发布时间】:2019-03-17 04:23:50
【问题描述】:
split(L,X,Y):-append(X,Y,L).
如下创建 4 个拆分:
X = [],
Y = [1, 2, 3] ;
X = [1],
Y = [2, 3] ;
X = [1, 2],
Y = [3] ;
X = [1, 2, 3],
Y = [] ;
我想消除拆分过程中创建的空列表,只保留没有空列表的组合
X = [1],
Y = [2, 3] ;
X = [1, 2],
Y = [3] ;
【问题讨论】:
-
你试过什么?作为
split谓词中的条件,包括您希望X和Y至少有一个带有头部和尾部的元素。如果您不确定如何执行此操作,请查看 Prolog 列表符号。 -
请您指定如何在拆分谓词中包含条件。
-
你可以写:
split(L, [X|Xs], [Y|Ys]) :- append([X|Xs], [Y|Ys], L).