我有以下函数,该函数接受两个列表,并将每个元素与每个元素匹配,然后返回字符串列表的列表。
matchChars:: [t] -> [t] -> [[t]]
matchChars x y = [[a,b] | a<-x,b <-y]
现在,我想修改该函数,以使列表列表中的字符串不会超过一定长度。
例如:假设matchChars
产生输出[["aaa","bbbb"],["c","dd"]]
。我想过滤掉所有两个字符串长度等于或大于7的子列表。因此,在此示例中,["aaa","bbbb"]
将被过滤掉。
我已经尝试过:
matchChars:: [t] -> [t] -> [[t]]
matchChars x y = takeWhile ((<= 7) . length) [[a,b <-y]
但是,这在迭代子列表的长度而不是字符串的长度时不起作用。有人知道如何解决我的问题吗?