F#:阻止此'let'未完成。期待表达式

时间:2015-09-22 15:17:51

标签: f# f#-interactive

我知道在F#中我们应该bind every single value to a name。 而且我认为我的确不错???

但是在 if语句中我有以下错误。

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

它来自let min= List.nth list i。 据我所知,我将 min 限制在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 个答案:

答案 0 :(得分:6)

如果要改变可变变量,可以使用<-运算符:

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

但这不是一种非常实用的方法。更好的方法是定义一个新值:

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