gpt4 book ai didi

Haskell:检查所有条件是否为真。如果他们是返回真否则假

转载 作者:行者123 更新时间:2023-12-01 07:26:46 26 4
gpt4 key购买 nike

今天下午我正在写一些 Haskell,我有一个必须满足的条件列表。如果它们都为真,我想返回真,如果其中之一为假,则返回假。

我有一种有效的方法,但我只是想知道是否有更好的方法来实现它以提高可读性/效率。

这是我所拥有的:

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

性别定义为:
data Gender = Male | Female (Eq)

所以我只是将 && 和 | 对齐以使其看起来更好一些,但我觉得必须有更好的方法,但似乎无法想出任何搜索谷歌的方法。

提前致谢!

最佳答案

你可以失去守卫并使用 and检查您的条件:

checkMatch :: Person -> Person -> Bool
checkMatch seeker candidate = and [
gender candidate == preferedGender seeker
, gender seeker == preferedGender candidate
, minAcceptableAge seeker <= age candidate
, maxAcceptableAge seeker >= age candidate
, minAcceptableAge candidate <= age seeker
, maxAcceptableAge candidate >= age seeker
]

关于Haskell:检查所有条件是否为真。如果他们是返回真否则假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18729768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com