Haskell,将字符串转换为自身所有可能的“元组”

时间:2013-03-29 21:59:01

标签: haskell tuples combinations

我已经搜索并找到了一些解决方案但是没有一个看起来像我想到的那么简单,所以你有一个数字列表[1,2,3,4]并想要打印这样的元组: [(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)]

所以使用

combinaList :: String -> String
combinaList x = [(x,y) | x <- x, y <- drop 1 x ]

应该做的伎俩,从列表中删除第一个元素并合并两个列表,但是我得到的类型错了,可能还有下降位,因为ghci继续对我抱怨,任何帮助都将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:6)

使用Data.List中的tails

combinaList xs = [(x, y) | (x:ys) <- tails xs, y <- ys]