【发布时间】:2016-09-05 03:01:07
【问题描述】:
所以我有一个问题,我需要查看 (x,y) 形式的位置列表是否按递增顺序排列。
只是一个例子来说明会发生什么
[(1,2), (1,3), (1,4), (1,5), (1,6)] it would return True, but
[(1,2), (1,3), (1,5), (1,6), (1,7)] will return False
例如这样开始。
is_in_order :: [Position] -> Bool
感谢您的帮助。
【问题讨论】:
-
你已经尝试过什么?列表
[(1,2),(2,1)]是什么? -
顺便说一句,haskell 通常使用 camelCase,因此命名
is_in_order通常是isInOrder,我建议使用 HLint 来检查类似的常见内容 - 它帮助我提高了我的 Haskell 技能! -
谢谢@epsilonhalbe 我会把它改成
isInOrder。所以我刚刚尝试了isInOrder :: (Ord a) => [a] -> Bool isInOrder [] = True isInOrder [x] = True isInOrder (x:y:xs) = x <= y && isInOrder (y:xs)这只是整理了一个列表。我似乎无法让它与元组一起使用,我需要它以案例格式 -
unzip [(1,2), (1,3)] == ([1,1], [2,3])可能会有所帮助。 -
您只检查这些元组的
y值吗?还是x也起到了一些作用?