2015-09-22 6 views
2

Я знаю, что в F # мы должны bind every single value to a name. И я думаю, что мое нормально ???F #: Блок, следующий за этим «let», не закончен. Ожидайте выражения

Но в если инструкция У меня есть следующая ошибка.

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

И он исходит из let 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 

ответ

6

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

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

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

let minUpdated = if min <= 0 then List.nth list i else min 
Смежные вопросы