我今天下午写了一些Haskell,我有一份必须满足的条件清单.如果它们都是真的我想要返回true,如果其中一个是假的,那么返回false.
我有一个方法正在工作,但我只是想知道是否有更好的方法来实现它的可读性/效率.
这是我有的:
checkMatch :: Person -> Person -> Bool
checkMatch seeker candidate
| gender candidate == preferedGender seeker
&& gender seeker == preferedGender candidate
&& minAcceptableAge seeker <= age candidate
&& maxAcceptableAge seeker >= age candidate
&& minAcceptableAge candidate <= age seeker
&& maxAcceptableAge candidate >= age seeker = True
| otherwise = False
Run Code Online (Sandbox Code Playgroud)
性别定义为:
data Gender = Male | Female (Eq)
Run Code Online (Sandbox Code Playgroud)
所以我只是调整了&&和s来使这个看起来好一点,但我觉得必须有一个更好的方法,但似乎无法想出任何搜索谷歌的东西.
提前致谢!