我正在 Haskell 中处理一个简单的闰年练习,我想让我的解决方案无点。从此开始:
isLeapYear :: Integer -> Bool
isLeapYear year = divisibleBy 400 year || divisibleBy 4 year && not (divisibleBy 100 year)
where
divisibleBy m y = (== 0) $ flip mod m y
Run Code Online (Sandbox Code Playgroud)
我试着使用liftA3,与函数做(x || (y && z))下面这个,但测试没有完成,我不知道为什么。
那么,我有3个问题:
divisibleBy了无点?(如果我删除参数,类型检查器会抱怨)liftA3 (\x y z -> x || (y && z)) (divisibleBy 400) (divisibleBy 4) (indivisibleBy 100),但测试挂起。为什么会这样?我不明白如何liftA3运作。非常感谢你的帮助。