在两个列表列表上设置操作

时间:2012-04-20 15:42:07

标签: algorithm haskell

我有两个问题;

  • 如何以有效的方式构建两个列表的联合
  • 如何以有效的方式区分两个列表

我想要的东西;

input :    first_list  =  ["stack", "foo", "bar" ]
           second_list =  ["foo", "like" ]

           first_list U second_list = ["stack", "foo", "bar", "like" ] 

           first_list - second_list = ["stack", "bar" ]  

2 个答案:

答案 0 :(得分:6)

使用Setuniondifference),排序列表(uniondifference)或未排序列表(union,{ {3}})。

答案 1 :(得分:0)

您可能希望查看支持高效连接的sequences: 在O(log(min(n1,n2)))时间。

(><) :: Seq a -> Seq a -> Seq a