我试图找出两个数字之间的值。到目前为止,我有:
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
答案 0 :(得分:1)
您可以将高度列表过滤到上限和下限之间的谓词,并确定剩余元素列表的长度:
filter :: (a -> Bool) -> [a] -> [a]
第一个参数允许您查看谓词是否为真。例如:
filter ((==) 0) [1, 2, 3, 0, 4, 1, 4, 0, 6, 2, 0]
将导致列表
[0, 0, 0, 0]
确定此列表的长度将显示满足谓词的元素数量。