问题描述
我看着这个:
http://hackage.haskell.org/package/either-5.0.1.1/docs/Data-Either-Validation.html
monoid的实现:
print(df_out)
country size a b c d
0 Italy 1 0.5 0.3 0.1 0.7
1 UK 2 0.3 0.5 0.7 0.3
2 UK 2 0.3 0.5 0.7 0.3
3 USA 2 0.7 0.1 0.3 0.1
4 USA 2 0.7 0.1 0.3 0.1
5 Uk 1 0.1 0.7 0.5 0.5 <- caused by typo in given data
我希望必须将有错误的成功合并为错误... 而且不明白为什么以这种方式实施 成功与错误合并成成功?
因此,如果我有很多验证结果,但其中一个失败了,我希望减少所有失败并合并所有错误。
但是:
instance Monoid e => Monoid (Validation e a) where
mempty = Failure mempty
Failure e1 `mappend` Failure e2 = Failure (e1 `mappend` e2)
Failure _ `mappend` Success a2 = Success a2
Success a1 `mappend` Failure _ = Success a1
Success a1 `mappend` Success _ = Success a1
为什么?
请记住,如果我有几个验证结果并且其中一个通过了,那么对于这种情况,总验证还可以吗?例如,如果我确认联系人是电子邮件,Skype或电话,其中之一有效,那可以吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)