计算两个数字之间的值haskell

时间:2014-11-21 14:51:21

标签: haskell

我试图找出两个数字之间的值。到目前为止,我有:

heightbetween :: Float -> Float -> [Float] -> Int
heightbetween _ _ [] = 0
heightbetween n s (x:xs)
 | (n < x) : (s > x) = 1 + (heightbetween n s xs)
 | otherwise = heightbetween n s xs

1 个答案:

答案 0 :(得分:1)

您可以将高度列表过滤到上限和下限之间的谓词,并确定剩余元素列表的长度:

filter :: (a -> Bool) -> [a] -> [a]

第一个参数允许您查看谓词是否为真。例如:

filter ((==) 0) [1, 2, 3, 0, 4, 1, 4, 0, 6, 2, 0]

将导致列表

 [0, 0, 0, 0]

确定此列表的长度将显示满足谓词的元素数量。