Я новичок в ProLog и пытаюсь ответить на следующий вопрос:
Напишите предикат len
, чтобы вычислить общую продолжительность списка x
задачи, например
?- len([d, j, l, n], Time).
Time = 15
Существует ряд правил, которые необходимо соблюдать:
duration(a,5).
duration(b,7).
duration(c,3).
duration(d,4).
duration(e,10).
duration(f,4).
Я попробовал следующее, но есть сообщение об ошибке, и я не вижу, что я делаю неправильно.
length([], 0).
length([X], duration(X, T), Time).
sum([],0).
sum([X|L],N) :-
sum(L,N1),N is N1 + X.
length([X|Xs], sum([duration(Xs, Ts)], Time).
Это ошибка: Singleton variables: [T,Time]
Syntax error: Operator expected
Я хочу иметь возможность рассчитать продолжительность нескольких задач за один раз, введя задачи в виде списка.
Я определил сумму. Что еще нужно сделать?
Кто-нибудь может мне помочь?