我正在尝试创建一个非常的简单程序,它找到一组点的平均距离为0.输入将是一组元组(即(1,2)和(2) ,3)),它应该从0计算每个点的距离,然后找到平均值。
我理解逻辑和通用公式(再次,它是非常简单),我在这里:
averageDist ((x,y):xs) = (sqrt((x*x)+(y*y)))/length xs
使用元组时,我只是不理解列表的语法。正如你所看到的,我尝试了(x,y):xs并且在编译时,ghci认为所有值都是不同的类型。如何修复此程序,以便我可以迭代并将公式应用于每个元组?
我对Haskell完全不熟悉,我感谢任何帮助。
由于
答案 0 :(得分:2)
首先写一个平均函数:
average :: [Double] -> Double
average xs = ...
和距离函数:
distance :: (Double,Double) -> Double
distance (x,y) = ...
然后您可以将这些功能与map
一起使用:
averageDistance :: [(Double,Double)] -> Double
averageDistance xs = average ( map distance xs )