我试图在F#代码下面运行,但是收到错误“接收错误”“let”之后的块未完成“。期望表达式”。有什么想法吗?
let search func list =
let rec loop func list index =
match list with
| [] -> -1
| hd::tl -> if func hd then index
else loop func tl(index+1) loop func list 0
答案 0 :(得分:1)
您可以粘贴代码块,因此无需逐行格式化。你看到的错误几乎总是来自两个(相关的)问题,a)缩进是关闭的,b)因为缩进是关闭的,或者你只是忘了从函数返回一个值。这很少是一个问题,因为VS和Code都可以使用缩进线或深度着色,因此您可以立即看到什么是关闭的。
你的意思是这样的:
let search func list =
let rec loop func list index =
match list with
| [] -> -1
| hd::tl -> if (func hd) then index
else loop func tl (index+1)
loop func list 0