F#:阻止此'let'未完成.期待一个表达

use*_*938 2 f# f#-interactive

我知道在F#中我们应该将每个值绑定到一个名称.我觉得我的确不错???

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

Block following this 'let' is unfinished. Expect an expression
Run Code Online (Sandbox Code Playgroud)

它来自于 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  
Run Code Online (Sandbox Code Playgroud)

Tom*_*cek 6

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

if min <= 0 then min <- List.nth list i  
Run Code Online (Sandbox Code Playgroud)

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

let minUpdated = if min <= 0 then List.nth list i else min
Run Code Online (Sandbox Code Playgroud)