У меня есть проблема, которая требует от меня использования find all для суммирования всех соответствующих элементов в списке, а затем с помощью оператора для вычисления каждого элемента в списке значений и последующего суммирования их вместе, но возникает ошибка.Ожидаемый результат представляет собой сумму списка каждого элемента (если элемент четвертого атрибута равен 500, добавить 0, если четвертый атрибут равен 400, добавить пятый атрибут, умноженный на 439,52, если четвертый атрибут равен 300, добавить пятый атрибут, умноженный на 728,63) ожидаемого вывода.должно быть большое число.Запрос, который возникает ошибка:
recall_information(L, C), print_list(L).
, который, я думаю, является проблемой
findall(X+Y/Year,mmyws(X+Y/Year/_/_),L),
recall_informationHelper(L, C).
Вот код
mmyws(ium+titan/2010/300/224507).
mmyws(ium+titan/2011/300/262391).
mmyws(ium+titan/2012/400/267041).
mmyws(ium+titan/2013/500/268842).
mmyws(ium+titan/2014/500/263528).
recall_information(L,C) :-
findall(X+Y/Year,mmyws(X+Y/Year/_/_),L),
recall_informationHelper(L,C).
recall_informationHelper([],0).
recall_informationHelper([Head | Tail] ,C) :-
recall_informationHelper(Tail, Z),
Head = Make + Model / Year,
mmyws(Make+Model/Year/W/N),
member(W,[400]),
C is Z + N * 439.52;
member(W,[300]),
C is Z + N * 728.63 ;
member(W,[500]),
C is Z.