【PL理论】(10) F#:列表的折叠操作 | 累积器 accumulator | List.fold 函数 | List.foldBack 函数 | List.reduce 函数
// 定义一个函数,使用List.fold来计算列表中所有数字的总和
let sumList list =
List.fold (fun acc elem -> acc + elem) 0 list
// 测试函数
let testList = [1; 2; 3; 4; 5]
let result = sumList testList
printfn "Sum of list: %d" result // 应该输出15
// 定义一个函数,使用List.fold来计算列表中所有数字的乘积
let productList list =
List.fold (fun acc elem -> acc * elem) 1 list
// 测试函数
let testList2 = [2; 3; 4]
let result2 = productList testList2
printfn "Product of list: %d" result2 // 应该输出24
这段代码首先定义了两个函数sumList
和productList
,分别用于计算列表中所有元素的总和和乘积。然后通过List.fold
函数对列表进行折叠操作,其中一个lambda表达式定义了累积逻辑。最后,提供了测试用例来验证这两个函数的正确性。
评论已关闭