【发布时间】:2016-05-22 15:23:26
【问题描述】:
消除列表元素的连续重复。
我的解决方案是:
compress([X,X|Xs], Q) :-
compress([X|Xs], Q).
compress([X,Y|Xs], Q) :-
X \= Y,
compress([Y|Xs], QR),
append([X], QR, Q).
compress([X|[]], Q) :-
compress([], QR),
append([X], QR, Q).
compress([], []).
而且,由于我是初学者而且我没有逻辑范式方面的经验,所以我请你说出我可以改进的地方,以及为什么我的解决方案不能做到最好。
例如,X \= Y 在我看来并不漂亮。
【问题讨论】:
标签: list prolog prolog-dif logical-purity