F#: Блок после этого 'let' является незаконченным. Ожидайте выражения

Я знаю, что в F# мы должны связывать каждое значение с именем. И я думаю, что мой в порядке???

Но в заявлении if у меня следующая ошибка.

Block following this 'let' is unfinished. Expect an expression

и это происходит от пусть min= List.nth list i, Насколько я знаю, я ограничил мин до List.nth list i, Так почему это должно быть ошибкой?

let mutable list =[-1;2;3;4]
let mutable min=list.[0]
let mutable i=1

if min<=0  then   let  min= List.nth list i  

1 ответ

Если вы хотите изменить изменяемую переменную, вы можете использовать <- оператор:

if min <= 0 then min <- List.nth list i  

Но это не очень функциональный подход. Лучший способ - определить новое значение:

let minUpdated = if min <= 0 then List.nth list i else min
Другие вопросы по тегам