Я должен создать предикат в прологе, так что iprod(List1, List2, Result)
принимает два списка равной длины и каждый из них содержит целые числа. В результате получается точечное произведение двух векторов.Вычислительный точечный продукт двух векторов
Например, List1 = [1,2,3]
, List2 = [4,5,6]
, то результатом будет 1*4 + 2*5 + 3*6
. Также я не должен использовать встроенную функцию dotproduct.
Мой код до сих пор:
iprod([],[], 0).
iprod([H1|List1], [H2|List2], Result is H1 * H2) :- iprod(List1, List2, Result).
Так что вопрос? Это «вы сделаете это домашнее задание для меня»? –
для получения рекомендаций по заданию справки о домашнем задании на SO, прочитайте [«Как задавать вопросы и отвечать на домашние вопросы?»] (Http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework -questions) – outis
Позвольте мне перефразировать это. Вышеупомянутый вопрос является проблемой. Я добираюсь до точки, где Result = ((0 - 2 * 4) - 1 * 3). Почему результат не будет фактическим? Вместо этого он дает мне все расчеты? – Victor