从元组制作列表

时间:2018-04-22 07:42:39

标签: prolog

我正在尝试从可变大小的元组中创建一个列表。但是,我无法弄清楚如何表示一个空元组(或其中包含单个值的元组),我需要作为我的最终案例。

这就是我现在所拥有的,通过跟踪来判断,确实创建了一个列表(但是反过来但它并不是真正的问题),但它最终会失败。

tuple_to_list((), []).
tuple_to_list((X, ()), [X]).
tuple_to_list((X, XS), List) :-
    tuple_to_list(XS, [X|List]).

1 个答案:

答案 0 :(得分:1)

只是:

tuple_to_list((X, XS),[X | List]) :-
    tuple_to_list(XS, List).
tuple_to_list((X), [X]):-
    X \= (_,_).

最后一句 X \ =()。因为

?- (X) = (a,b).
X =  (a, b).