Не могу заставить мой f # работать при использовании 2 для циклов - PullRequest
0 голосов
/ 26 сентября 2018

Эй, я пытаюсь сделать функцию, которая получит сумму чего-то.Но кажется, что мое творение не работает и выдает ошибки в моем текстовом редакторе.Вот код

let myFunction (n:int):int =
    let mutable sum = 0
    for i = 0 to n+2 do
    for j = i-1 to n+1 do

        sum<- sum + 1 

    sum

, который дает мне эту ошибку вокруг циклов for

"Ожидается, что это выражение будет иметь тип 'int'
, но здесь имеет тип 'unit'"

1 Ответ

0 голосов
/ 26 сентября 2018

Если я правильно понял вашу myFunction логику, то она должна выглядеть следующим образом:

let myFunction (n:int):int =
    let mutable sum = 0
    for i = 0 to n+2 do
        for j = i-1 to n+1 do
            sum <- sum + 1
    sum

Обратите внимание на две вещи, которые отличались от вашего исходного кода:

  1. Второй цикл for имеет отступ для размещения «внутри» первого, и
  2. В конце есть строка sum: последним выражением функции является ее возвращаемое значение.Таким образом, добавляя строку, читающую sum в конце функции, вы заставляете ее возвращать рассчитанную вами сумму.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...