我想编写一个函数来检查两个列表是否“几乎”相等。第一个参数d
用于精度 - 元素之间的差异不得超过d
。
例如,nearlyEqual 0.5 [2,5] [2.5, 5.1]
等于True
,但nearlyEqual 0.1 [2,5] [2.5, 5.1]
等于False
。
我写了这个,但它不起作用:
nearlyEqual :: Int -> [Int] -> [Int] -> Bool
nearlyEqual d xs ys = foldr(&&) True $ zipWith (\x y -> abs(x-y)<=d)
我错过了什么?任何帮助将不胜感激!