-1
module Data where
data Cons a = Con (a -> Bool)
deriving (Show)
twoCons :: Cons a -> Cons a -> Cons a
twoCons (Con a) (Con b) = Con (twoCons' a b)
twoCons' :: (a -> Bool) -> (a -> Bool) -> (a -> Bool)
twoCons' c1 c2 x = (c1 x) && (c2 x)
此代碼不起作用,有或沒有deriving (Show)
。爲什麼此代碼無法正常工作? (結合兩種測試功能)
它應該結合兩個測試/約束並返回由第三個Con
包裝的函數。 約束可能是(>1)
和(<10)
,結果應該是兩個約束的組合,約束的類型可以是任何東西。
你是什麼意思「這不行」?如果它沒有編譯,請告訴我們錯誤消息。如果它編譯但給出了錯誤的結果,告訴我們什麼樣的值會給你錯誤的結果,告訴我們錯誤的結果,告訴我們你期望的結果。 – dave4420
nvm我想我得到它的工作... –