Продукт в Прологе - PullRequest
       1

Продукт в Прологе

0 голосов
/ 28 апреля 2018

Дайте рекурсивное определение в прологе:

Определяем предикатное прод (L, N), которое принимает список L чисел и вычисляет произведение N чисел в списке.

Я нашел способ, который работает на сумму:

  sum([],0).

 sum([X|L],N) :- sum(L,N1),N is N1 + X.

Пожалуйста, помогите мне. Я пытался в течение долгого времени, и это все еще не работает.

1 Ответ

0 голосов
/ 28 апреля 2018
product(L, N) :- product(L, 1, N).
product([], X, N) :- N is X.
product([H|T], X, N) :- X1 is X*H, product(T, X1, N).

Вам нужен временный счетчик (X в этом случае). И вы приняли сумму за умножение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...