簡體   English   中英

Haskell-(Eq(Int-> Int))的實例不因使用'=='而引起

[英]Haskell - No instance for (Eq (Int -> Int)) arising from a use of ‘==’

我目前正在研究haskell。 我知道我必須將數據類型作為Eq的一個實例才能進行比較。 但是Int應該已經可以比較了吧? 所以我不知道如何處理以下錯誤:

•沒有因使用'=='而引起的(Eq(Int-> Int))實例(也許您尚未將函數應用於足夠的參數?)

我的代碼如下:

myRandomList = [1,2,3,4,5,6,7,8,9,10]


myFilterList :: [Int] -> [Int]
myFilterList [] = []
myFilterList (x:xs)
        | mod x == 0 = x : myFilterList xs
        | otherwise = myFilterList xs


myDotFunc = map (+ 1) . myFilterList . myRandomList  

附:我什至不確定,如果我的代碼能正常工作而不會出現此錯誤,請記住我剛剛開始haskell :)

在這一行中,您只給了mod一個參數:

        | mod x == 0 = x : myFilterList xs
--        ^^^^^ HERE

因此,看起來您正在嘗試比較功能。 您可能會注意到,GHC在錯誤中告訴您這一點:

沒有因使用'=='而引起的(Eq(Int-> Int))實例(也許您尚未將函數應用於足夠的參數?)

我應該是mod xy ,其中y是模(“除法器”)。 我不知道你想要什么y是,雖然如此,我不能糾正你的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM