我有這個功能刪除參數「e」的一個問題:無法刪除的參數(自由點式的Haskell)
numocc e = map length . (map . filter . (==)) e
功能檢查內部兩個元素的出現次數的數量維列表(列表中的列表)。所以你怎麼稱呼它,如下所示:
numocc 1 [[1, 2], [2, 3, 2, 1, 1], [3]]
Result : [1,2,0]
參數ê是最右邊等號的兩邊,並且在任何參數不包住。所以,我應該能夠將其刪除,以得到一個免費的點對點功能:
numocc = map length . (map . filter . (==))
但是我得到這個錯誤:
Type error in application Expression : map length . map . filter . (==) Term : map length Type : [[b]] -> [Int] Does not match : ([[a]] -> [[a]]) -> [Int]
什麼是這裏的問題?謝謝。
當您在列表上測試函數numocc時,它也會產生一個錯誤。你過濾與平等但等於什麼? –
@ Zacharie007 對不起,我應該澄清一下,此函數計算二維列表中元素的出現次數。所以你可以這樣稱呼它: numocc 1 [[1,2],[2,3,2,1,1],[3]] –