【发布时间】:2017-09-29 02:57:50
【问题描述】:
我试图创造一些像这样工作的东西:
?- unpacking([[1], [1,2], [3]], Lst1, NewLst).
NewLst=[1,3]
我是这样写的:
unpacking([], Lst1, Lst1).
unpacking([[H]|T], Lst1, NewLst):-
append([H], Lst2),
unpacking(T, Lst2, NewLst).
unpacking([_|T], Lst1, NewLst):-
unpacking(T, Lst1, NewLst).
我知道我做错了什么。我从 Prolog 开始,所以需要从我的错误中吸取教训 :)
【问题讨论】:
-
你对
[[],[1],[2]]有什么期望? -
这是做什么的?它应该做什么?你有什么问题?...
-
@false 实际上从来没有考虑过那个输入 :) 因为我正在处理通常里面有东西的列表。
-
@Boris 所做的是将一个列表解包到另一个列表中,但只保留一个元素列表,因此不是列表列表而是具有非列表元素的列表,它只保留单元素列表,我看到有点混乱。
-
但是为什么你有三个参数呢?两个论点应该就够了我有感觉....
标签: prolog