Это база знаний я работаю с:Суммируя уже выводимый список
localLib('AHorowitz','Stormbreaker',2).
localLib('AHorowitz','Scorpia',4).
localLib('AHorowitz','Ark Angel',6).
Ключ для базы знаний выглядит следующим образом:
localLib(W,B,C) where
W=Writer
B=Book
C=Acknowledgements
Я хотел бы написать правило что добавляет все подтверждения писателя. Это код, который я написал до сих пор:
getAcknowledgement(W,X):- findall(C,localLib(W,_,C),X).
Это правило помогает мне перечислить все подтверждения в отдельном списке, например,
?- getAcknowledgement('AHorowitz',X).
X = [2, 4, 6]
Я сейчас застрял в том, как добавить эти предметы. Я знаю о sum_list построен в и хотя я знаю, что это не исправить, что я хочу, чтобы достичь это:
getAcknowledgement(W,X):- findall(C,localLib(W,_,C),X).
sum_list(X,[getAcknowledgement]).
/* I would like to sum the output that I receive from the first rule above.
The KB has been simplified in this example to 3 clauses however in reality
there are 1000.*/
Как бы я идти об этом, любая помощь будет большим?
'getAcknowledgement (W, X), sum_list (X, S) .' –
Спасибо, я знал, что был почти там! –