首页 > 解决方案 > Haskell - 用于检测数字是否在范围内的优雅代码

问题描述

我正在写作业,我发现一段我认为不够优雅的代码..

确切地 :

if n >= min && n <= max 
    then ...
    else ...

我想问是否有任何更优雅的方法来编写此代码来检查数字是否在范围内(最小值,最大值)

标签: haskellcode-cleanup

解决方案


我认为这是尽可能短的,可以开箱即用。如果此问题在您的代码中经常出现而变得烦人,您可以将其提取到一个函数中,如下所示

(<?) :: Ord a => a -> (a,a) -> Bool
(<?) x (min, max) = x >= min && x <= max

然后用作:

if x <? (min, max) 
    then ... 
    else...

更新:事实证明,基础包中还有一个功能inRange


推荐阅读