【发布时间】:2018-02-15 21:41:55
【问题描述】:
我有一个要应用特定条件的元组列表。 Il 看起来很简单,但我坚持这一点。 元组列表已全部生成
例如:[(10,11),(11,10),(11,12),(12,11),(13,15),(13,14)]
我想返回相同元组的列表,但是当元组 (x1,y1) 和 (x2,y2) 其中 x1 == y2 和 y1 = x2 并且仅属于 (x1,y1) 的列表时被退回
我的函数头
myFun :: Ord a => [(a,a)] -> [(a,a)]
myFun = ....
并且预期的结果应该是这样的(来自同一个列表)
[(10,11),(11,12),(13,15),(13,14)]
欢迎任何指示、想法或提示。
【问题讨论】:
-
你尝试了什么?
-
myFun = nubBy $ \(x1, y1) (x2, y2) -> x1 == y2 && y1 == x2 -
太好了,我希望我能理解更多的 lambda 表达式
-
也可以:
map head $ groupBy (\(x1, y1) (x2, y2) -> x1 == y2 && x2 == y1) xs