【问题标题】:Split list of two nested lists in two separated lists - Prolog在两个单独的列表中拆分两个嵌套列表的列表 - Prolog
【发布时间】:2019-12-16 11:49:47
【问题描述】:

我已经完成了我的研究,但找不到类似的东西。我需要将两个列表的列表拆分为两个单独的列表,例如: [ [[1,2],[2],[3]], [[3], [2,3], [5]] ] -> 结果为 [[1,2],[2],[3]] 和 [[3], [2,3], [5]]。

我试过了,但我似乎找不到需要更改代码的地方:

split([],[],[]).
split([H|T],X,Y):-
   X = H,
   Y = T.

【问题讨论】:

    标签: list split prolog


    【解决方案1】:

    你可以只用两个参数解压列表:

    split(<b>[L1, L2]</b>, L1, L2).

    因此,我们在这里将第一个参数与[L1, L2] 统一起来,这样长度为二的列表就以L1 与第一项(子列表)统一,L2 与第二项(子列表)统一的方式统一.

    【讨论】:

    • 所以会一直这样吗?我无法让代码运行`split([],[],[])。分裂([L1,L2],L1,L2)。 `
    • @MadPat:这里为什么需要split([],[],[])?在问题中,它说作为先决条件,第一个列表具有(完全)两个元素。
    • 你是对的。但是如何将我的列表名称放在 [L1, L2] 中?因为我需要拆分一个参数(在谓词内)
    • 什么意思?您只需调用它,例如使用split([ [[1,2],[2],[3]], [[3], [2,3], [5]] ] , X, Y)
    • 这是一个 .代替 , !多么初学者!非常感谢
    猜你喜欢
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 2021-08-06
    • 2021-03-27
    • 1970-01-01
    • 2021-10-26
    • 2023-01-09
    • 1970-01-01
    相关资源
    最近更新 更多