之前的代码:
let createMartix f times =
seq {for i in 0..times-1 do (f i)}
let input = createMartix ( fun i -> char i + char 'A') 6
这里 F#会报错 FS0001 type unit don’t match type char .原因是F#静态编译类型,并不能从createMartix中推断出匿名函数f的返回值具体是什么,因此推断为默认类型 unit
更改 createMatrix
let createMartix f times =
seq {for i in 0..times-1 do ((f i):char)}
指定匿名函数返回值为char,这样在传入lambda 表达式时就不会得到FS0001错误