我正在编写一个 Haskell 函数,它递归地将整数i
与元组列表进行比较。特别是,我想将整数与列表中的i
每个a
进行比较(a,b)
。如果i < a
然后打印b
与a
样本输入/输出
check 0.01 [(0.25, 'x'),(0.50,'y'),(0.75,'z')] = 'x'
check 0.4 [(0.25, 'x'),(0.50,'y'),(0.75,'z')] = 'y'
check 100 [(0.25, 'x'),(0.50,'y'),(0.75,'z')] = ' '
我写了一个关于如何处理它的伪代码,但我无法将该伪代码转换为实际的 Haskell 函数。这是我到目前为止所拥有的:
check :: a -> [(a,b)] -> b
check i (a,b):xs = tuples d xs
| if d <= a in (a,b) then = b //pseudocode
| id d !<= a in (a,b) then recursively check the next tuple //pseudocode
| otherwise ' ' // d is larger than all the a's of the tuple so return a space
我相信我正在考虑的方式是正确的,但我无法弄清楚如何遍历元组,将整数i
与元组的a
s 进行比较。有什么帮助吗?