Div*_*aim 7 f# functional-programming
可以说我有一个这样的函数定义:
let sum (numbers: int list) =
// code here
Run Code Online (Sandbox Code Playgroud)
有哪些方法可以计算数字列表中所有其他元素的总和?所以如果输入[3;5;3;7]结果是[(3, 15); (5, 13); (3, 15); (7, 11)].
我实际上对任何解决方案感兴趣,尤其是那些使用功能方法
谢谢
gor*_*ric 13
您可以通过对列表求和然后为列表中(x, sum - x)的每个元素返回元组来非常天真地执行此操作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)]
Run Code Online (Sandbox Code Playgroud)