首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >haskell求助 怎么写俩俩组合配对的list???

haskell求助 怎么写俩俩组合配对的list???

提问于 2019-12-02 00:09:54
回答 0关注 0查看 232

我刚刚开始学习haskell遇到个题目做不出来,要求写一个function.

它接受一个长度为偶数的 list 和一个条件返回新的list

findBonding :: Eq a => (a -> a -> Bool) -> [a] -> Maybe [(a,a)]

元组 list 满足所有元素都是从原list来的且出现一次 就是俩俩组合

[1, 2, 3, 4] 得到 [(1,2),(3,4)] or [(1,3),(2,4)] or [(1,4),(2,3)]

[1,2,3,4,5,6] 得到[(1,2),(3,4),(5,6)] or [(1,3),(2,4),(5,6)] or....

这是我已经写的代码,只能返回符合条件f的所有可能组合,但是弄不出俩俩组合的样子

findBonding :: Eq a => (a -> a -> Bool) -> [a] -> Maybe [(a,a)]

findBonding f xs

|length xs `mod`2/=0 =Nothing

| and [elem (y, x) rel | (x, y) <- rel]

= Just(rel)

| otherwise = Nothing

where

rel = [(a, b) | a <- xs, b <- xs, a /= b, f a b]

T T 我做了俩天了实在想不出该怎么做

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档