为什么“正确”的价值包含了Eithers的“成功”结果?

时间:2014-06-09 11:42:52

标签: functional-programming conventions

在Scala和Haskell等函数式编程语言中,有一种Either类型,通常用于表示成功的结果一个失败/错误对象。据说其中一个是“离开”。如果它包含失败并且是正确的'当它包含一个成功的结果时。

有没有理由"不成功"是"左"并且"成功"是"对"?为什么这些方向首先使用?

2 个答案:

答案 0 :(得分:1)

来自Haskell的Data. Either文档:

Left构造函数用于保存错误值,Right构造函数用于保存正确的值(助记符:“right”也表示“正确”)。

答案 1 :(得分:1)

这只是猜测,但在Haskell中Either是第二种类型的monadic,它是与Right构造函数关联的类型。因此,通用monadic代码只会更改正确的类型,因此保持不变的左类型用于保存错误。

因此,主要原因是将类型参数交换为Either,以使Either a bLeft bRight a令人烦恼,因为没有真正的好处。