为了账号安全,请及时绑定邮箱和手机立即绑定

A、B、U、C的PROLOG联合

A、B、U、C的PROLOG联合

繁星淼淼 2019-05-30 10:35:38
A、B、U、C的PROLOG联合我最近开始学习PROLOG,我无法解决如何将三个列表结合起来。我能把两份名单结合起来:%element element(X,[X|_]). element(X,[_|Y]):-                element(X,Y). %union union([],M,M). union([X|Y],L,S) :- element(X,L),union(Y,L,S). union([X|Y],L,[X|S]) :- (not(element(X,L))),union(Y,L,S).有人能帮我吗?
查看完整描述

3 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

您可以对前两个列表进行合并,然后将结果与第三个列表进行合并:

union(L1, L2, L3, U):-union(L1, L2, U12), union(U12, L3, U).

你可以改进union/3用切割操作符:

union([],M,M).
union([X|Y],L,S) :- element(X,L), !, union(Y,L,S).
union([X|Y],L,[X|S]) :- union(Y,L,S).


查看完整回答
反对 回复 2019-05-30
  • 3 回答
  • 0 关注
  • 563 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信