gpt4 book ai didi

performance - 在 Haskell 中有效计算列表的平均值

转载 作者:行者123 更新时间:2023-12-02 20:24:30 24 4
gpt4 key购买 nike

我设计了一个函数来计算列表的平均值。虽然它工作得很好,但我认为它可能不是最好的解决方案,因为它需要两个函数而不是一个。是否可以仅使用一个递归函数来完成这项工作?

calcMeanList (x:xs) = doCalcMeanList (x:xs) 0 0

doCalcMeanList (x:xs) sum length = doCalcMeanList xs (sum+x) (length+1)
doCalcMeanList [] sum length = sum/length

最佳答案

你的解决方案很好,使用两个函数并不比一个函数差。不过,您可以将尾递归函数放在 where 子句中。

但是如果你想在一行中完成:

calcMeanList = uncurry (/) . foldr (\e (s,c) -> (e+s,c+1)) (0,0)

关于performance - 在 Haskell 中有效计算列表的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3300995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com