我如何获得haskell中元组的索引?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何获得haskell中元组的索引?相关的知识,希望对你有一定的参考价值。
如何获取haskell中的元组列表中元组元素之间最大差异的索引?
maxDiff :: [(Int, Int)] -> Int
maxDiff [(-5, 3), (-20, 20), (21, 33)] == 2
maxDiff [(-5, 3)] == 1
maxDiff [(-5, 3), (-20, 20), (21, 33), (-50, 30)] == 4
答案
maxDiff = snd . minimum . (`zip` [1..]) . map (uncurry (-))
另一答案
看起来像作业。 ;)import Data.List
tupleDiff :: (Int, Int) -> Int
tupleDiff (x, y) = abs(x - y)
type TupleArray = [(Int, Int)]
maxDiff :: TupleArray -> Maybe Int
maxDiff tuples = elemIndex maxVal tupleDiffs
where tupleDiffs = map tupleDiff tuples
maxVal = maximum tupleDiffs
main :: IO ()
main = do
print $ maxDiff [(-5, 3), (-20, 20), (21, 33), (-50, 30)]
以上是关于我如何获得haskell中元组的索引?的主要内容,如果未能解决你的问题,请参考以下文章
Python 等效于 Haskell 的 [1..](索引列表)