我有一個需要根據謂詞函數進行過濾的項目列表。謂詞函數需要多個參數才能成功返回結果。過濾一個帶有多個參數的謂詞
這裏是我的功能類型聲明,對於需要返回過濾列表的功能:
myFilter :: Int -> [[String]] -> [String] -> [[String]]
[[String]]
是需要被過濾列表,是人的名單。一個人的名字表示如下["FirstName", "MiddleName", "LastName"]
。
[String]
是個體的名稱,例如["Bob", "Jane", "Alice"]
。
我需要的是要過濾掉所有名稱中沒有至少具有與個人名稱相同名稱的號碼。
例如,如果我打電話給
myFilter 2 [["a", "b", "c"],["d", "e", "f"]] ["a", "f", "b"]
我會得到
[["a", "b", "c"]]
因爲["d", "e", "f"]
不具有共同的至少2名與["a", "f", "b"]
。
我打算將此作爲更大程序的一部分,允許用戶管理一個人員列表。該程序的功能之一是按姓名進行搜索,根據用戶輸入的整數參數返回所有名稱匹配人員的列表。
我知道filter
函數,但似乎謂詞函數應該只能是p :: Bool
類型。正如你所看到的,我的謂詞更復雜。