我想通過一些練習快速檢查我的課程。但我沒有解決這些做法的檢查。你能給我一個解決方案,所以當我卡住了。我可以很快找到一些指導。第一個問題如下所述。提前致謝。使用= ..來定義謂詞子句(T1,T2)
問題1。我們記得,如果T是一個項,並且L是包含函子和L的主要子項的列表,則滿足內置謂詞T = .. L。例如,f(a,g(b))=。當L = [f,a,g(b)]時滿足L,並且a = ...當列表= [a]時滿足列表。
使用= ..定義當T1是T2的子項時滿足的謂詞子項(T1,T2)。你可以假設T1和T2沒有變量。您可能還想要按照以下順序使用內置謂詞atomic(X)或compound(X)來檢查X是否是原子項和結構。
我的解決辦法是:
subterm(X,[X]):-atom(X),!.
subterm(T1,T2):-
compound(T1),
T1=..U,
U=[X|Y],
T2=Y.
任何意見,將不勝感激。謝謝!
我認爲你不需要原子/ 1或複合/ 1,而是成員/ 2。請顯示你的嘗試。 – CapelliC
一旦卡住,我們很樂意提供幫助。 –
對不起,延遲迴復。我忙於準備一門考試。我想知道我是否有足夠的時間來解決我們教授給出的所有做法。只要我有一個想法,我會在這裏發佈它來獲得你的指導。 – user2585677