【发布时间】:2017-08-27 09:46:35
【问题描述】:
我有一个需要根据谓词函数过滤的项目列表。谓词函数需要多个参数才能成功返回结果。
这是我的函数类型声明,对于需要返回过滤列表的函数:
myFilter :: Int -> [[String]] -> [String] -> [[String]]
[[String]]是需要过滤的列表,是人名列表。一个人的名字表示如下["FirstName", "MiddleName", "LastName"]。
[String] 是个人的姓名,例如["Bob", "Jane", "Alice"]。
我需要过滤掉所有与个人名称至少有 Int 个相同名称的名称。
例如,如果我要打电话
myFilter 2 [["a", "b", "c"],["d", "e", "f"]] ["a", "f", "b"]
我会得到
[["a", "b", "c"]] 因为["d", "e", "f"] 与["a", "f", "b"] 没有至少两个相同的名称。
我计划将其用作允许用户管理人员列表的更大程序的一部分。该程序的功能之一是按姓名搜索,根据用户输入的整数参数返回姓名匹配的所有人的列表。
我知道filter 函数,但似乎谓词函数只能是p :: Bool 类型。如您所见,我的谓词更复杂。
【问题讨论】: