Не могу найти, что не так с этим фрагментом кода ... F # - PullRequest
2 голосов
/ 03 января 2011

Я проверял везде, и я не могу найти проблему.Компилятор выдает мне эту ошибку: "error FS0039: The value or constructor 'dotProduct' is not defined".Но dotProduct в настоящее время определен.

Visual Studio 2010 также выделяет второй символ let (let rec dotProductAux list1 list2 acum =), говорящий о том, что выражение не завершено.это:

dotProduct [1;4;7] [3;4;1];;   //(1*3) + (4*4) + (7*1)

Я довольно плохо знаком с F # и, похоже, не могу понять этот код правильно.Любая помощь?

1 Ответ

2 голосов
/ 03 января 2011

Тело dotProduct содержит определение dotProductAux, но не содержит фактического выражения.Вам нужно на самом деле позвонить dotProductAux (т.е. вы пропускаете вызов dotProductAux list1 list2 0 после let rec).

Кроме того, случай | [],[]| l,[] -> accum вызовет ошибку, поскольку второй шаблон связываетсяпеременная l, а первая нет.Вы можете исправить это, заменив l на _, поскольку он вам на самом деле не нужен. (Очевидно, вы уже исправили это в редактировании).

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