我编写了一个包含 2 个列表的点积函数:
let inline dot a b =
List.zip a b
|> List.map (fun (a, b) -> a * b)
|> List.reduce (+)
有没有更好的方法来计算点积而不使用 List.zip
?
最佳答案
一种较短的方法是使用 List.map2
:
let inline dot a b = List.map2 (*) a b |> List.sum
另一种方法是使用 List.fold2
:
let inline dot a b = List.fold2 (fun state x y -> state + x * y) LanguagePrimitives.GenericZero a b
关于.net - 点积函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45198448/