拆分列表后,如何在列表的开头附加元素?

时间:2019-11-29 03:23:38

标签: prolog

我是Prolog新手,我的代码遇到了一些麻烦。

我正在尝试使用输入的元素将列表分为两部分。该列表将拆分为一个左侧列表,该列表将在元素之前包含所有内容,而右侧列表则将在元素之后包含所有内容,包括元素

我知道split(List, Split, Left, Right) :- append(Left, [Split | Right], List),带有回报

?- split( [3,5,6,8,10,4,5], 10, Left, Right).
Left = [3, 5, 6, 8],
Right = [4, 5]

但是,我想要的结果是:

?-split( [3,5,6,8,10,4,5], 10, Left, Right).
  Left = [3,5,6,8]  
  Right = [**10**,4,5]

我尝试使用附加项将“ 10”添加到“权限列表”的开头,但是它返回false,我不知道为什么。这是我尝试过的代码:

split(List, Split, Left, Right) :- 
    append(Left, [Split | RightTemp], List), 
    append(Split, RightTemp, Right).

1 个答案:

答案 0 :(得分:1)

我想您会惊讶于解决方案的简单性。 :)

split(List, Split, Left, [Split|Right]) :- 
    append(Left, [Split|Right], List).
相关问题