假设我有一个像这样的函数定义:
let sum (numbers: int list) =
// code here
有哪些可能的方法来计算数字列表中所有其他元素的总和?因此,如果输入是 [3;5;3;7]
结果是 [(3, 15); (5, 13); (3, 15); (7, 11)]
.
我实际上对任何解决方案都很感兴趣,尤其是那些使用函数式方法的解决方案。
谢谢
最佳答案
您可以通过对列表求和然后为列表中的每个元素 x
返回一个 (x, sum - x)
元组来简单地完成此操作:
let sum (numbers: int list) : (int * int) list =
let s = List.sum numbers
numbers |> List.map(fun x -> (x, s-x))
let nums = [3;5;3;7]
printfn "%A" (sum nums) // [(3, 15); (5, 13); (3, 15); (7, 11)]
关于F# 列表中所有其他元素的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44568080/