簡體   English   中英

Prolog謂詞

[英]predicate with Prolog

我必須編寫一個具有謂詞p(A,B,C,D,E,F) A,B,C,D,E,F是列表。
A包含D,E和F。(類似A和B的是D,A和C是E的)F包含不帶D和E的A。
並且列表F中的元素也是成對的(例如,如果A包含[a,b,c],則F將包含[a,a,b,b,c,c]。)

所以..我不能從哪里開始。 我已經閱讀了教程,但仍然..我不太明白。

例:

A is [a,b,c,d,e,f,g]  
B is [a,c,d,q,w]  
C is [e,d,g,m,n]  
D is [a,c,d]  
E is [e,d,g]  
F is [b,b,f,f]  

A包含D,E和F

聽起來好像您想看看memberappend

像A和B是D,A和C是E

這可能可以通過類似於append(A, B, D) (“ DAB的串聯”)和append(A, C, E) (“ EAC的串聯”)解決。 。

F包含A,不含D和E。

使用append找出F是什么。 append(FwithoutPairs, A, DandE)這樣的東西,然后創建一個pairsOf謂詞,看起來像

pairsOf([], []).
pairsOf([H, H | T], [H | S]) :- pairsOf(T, S).

除了aioobe的答案

像A和B是D,A和C是E

p(A,B,C,D,E,_F):-
    intersection(A,B,D),
    intersection(A,C,E).

您最終將需要訂購列表,但是intersection/3似乎更准確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM