[英]I'm trying to classify using guards in haskell
分类 n:根据以下模式返回基于数字等级的字母等级:
这是我的 haskell 代码:
classify n
| n => 90 = 'A'
| 89 <= n <= 70 = 'B'
| 69 <= n <= 50 = 'C'
| otherwise = 'D'
但它一直给我错误
对于大于或等于,使用>=
而不是 ,此外,您不能像 Python 中那样链接条件,因此您应该使用=>
89 >= n && n >= 70
:
classify n
| n >= 90 = 'A'
| 89 >= n && n >= 70 = 'B'
| 69 >= n && n >= 50 = 'C'
| otherwise = 'D'
您可以将表达式简化为:
classify n
| n >= 90 = 'A'
| n >= 70 = 'B'
| n >= 50 = 'C'
| otherwise = 'D'
这适用于整数,因为守卫n >= 90
将对所有大于或等于 90 的值触发。因此,这意味着不会为下一个守卫评估此类值,并且只会评估小于或等于 89 的整数其他守卫。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.