考虑以下
let l1 = [1..10]
let l2 = [11..20]
let avg = fun x y-> (x+y)/2.
let c = (l1, l2) ||> List.map2 avg
Run Code Online (Sandbox Code Playgroud)
这给出了错误
类型不匹配.期望一个int - > int - >'a但是给定一个
int - > int - > float类型'float'与'int'类型不匹配
为什么会发生这种情况,我该怎么做才能解决这个问题?
F#没有自动转换int为float.(x+y)是一个int值,2.是一个float值.明确转换分子:
let avg = fun x y -> float (x+y) / 2.
Run Code Online (Sandbox Code Playgroud)