今日の午後、Haskell を書いていて、満たさなければならない条件のリストがあります。それらがすべて true の場合は true を返し、そのうちの 1 つが false の場合は 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
性別は次のように定義されます。
data Gender = Male | Female (Eq)
だから私は && と | を並べて見栄えを良くしましたが、もっと良い方法が必要だと感じていますが、Google を検索しても何も思いつかないようです。
ありがとうございます!