我現在有一個關係定義爲:如何從關係提取我的列表[序言]
relation2(relation(['Course', 'Prof', 'Local'],
[['COMP232', 'Tim W.', 'H6010'],
['COMP248', 'Louise L.', 'H5605'],
['COMP348', 'Mohamed T.', 'H7610']])).
我也有一個功能:
member(X, [X|_]).
member(X, [_|Rest]) :- member(X, Rest).
我如何將能夠使用列表在關係2中的成員函數。所以,使用列表:
[['Course', 'Prof', 'Local'], [...] ]
我的目標是使用關係內的列表,並驗證是否列表中的第一個元素(讓它命名爲header = ['Course','Prof','Local'])是該列表的成員。所以,
?- member('Name', [header]).
會返回true。
編輯:
我似乎能夠得到我的頭,
?- relation2(relation(X,_)).
X = ['Course', 'Prof', 'Local'].
但是,如果使用
?- member('Course',relation2(relation(X,_))).
false.
爲什麼?
爲什麼這樣一個人爲的表示?爲什麼不簡單地使用事實清單?如果需要,您可以使用標準內置謂詞(例如'findall/3')隨時收集列表中的相關事實。 –
關係概念強加於我,別無選擇,只能使用它:P。 – Irslambouf