Я писал Haskell сегодня днем, и у меня есть список условий, которые должны быть удовлетворены. Если все они истинны, я хочу вернуть true, если один из них false, а затем возвращает false.Haskell: Проверьте, соблюдены ли все условия. Если они вернутся в противном случае 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)
Так что я просто выравнивали & & 'S и |' s, чтобы сделать это выглядеть немного лучше, но Я чувствую, что должен быть лучший способ, но, похоже, не может найти ничего, что бы искало Google.
Спасибо, продвинутый!
BTW, [это _preferred _] (HTTP : //en.wiktionary.org/wiki/prefered). – leftaroundabout