我遇到了我的函数有问题,我想用函数对字符串进行模式匹配,但是我有将字符串拆分为子字符串的问题。我想要一个像"ccaabbccaacc"
这样的字符串和像"a*b*c*"
这样的常规表达式来获得["cc", "aabbcc", "aacc", ""]
,这是一个带有分隔子字符串的列表。我做了这个函数返回的字符串将字符串拆分成haskell中的子字符串
parts :: [a] -> [[[a]]]
parts [ ] = [[ ]]
parts [c] = [[[c]]]
parts (c : cs) = concat [[(c : p) : ps ,[c] : p : ps] | p : ps <- parts cs]
的所有部分,但我申请当我配衬功能公开所有结果返回更多的,我想,我不知道如何来筛选结果。有人能帮助我吗?
尽管将这样的问题分解成像这样简单的步骤通常是一个好主意,但我认为这是一个例子,它可以更有效地编写一个完全完成工作的递归函数。你尝试过吗? – leftaroundabout 2013-04-28 13:11:07
我试图做一些递归,但它不起作用 – user192837465 2013-04-28 13:29:57