什么属性使得Scala中的“类型优先”编程代码更少,bug更少?

什么属性使得Scala中的“类型优先”编程代码更少,bug更少?,scala,types,monads,category-theory,Scala,Types,Monads,Category Theory,我参加了一个名为“类型中的模式”的Scala课程。本课程涵盖以下理念: 把这一切都追溯到 背景是课程老师们非常热衷于学习 这种设计方法背后的原因是编程导致更少的代码和更少的bug。我正试着把我的头脑集中在这个推理上 我的问题是:什么属性使得Scala中的“类型优先”编程具有更少的代码和更少的bug?我想说,预计bug会更少,因为您向编译器提供了尽可能多的信息,因此它可以在编译过程中发现问题。否则,它们将在运行时发生 关于更少的代码,我不确定,但可能想法是Scalaz为您带来了很多魔力,因此您不必

我参加了一个名为“类型中的模式”的Scala课程。本课程涵盖以下理念:

把这一切都追溯到 背景是课程老师们非常热衷于学习

这种设计方法背后的原因是编程导致更少的代码和更少的bug。我正试着把我的头脑集中在这个推理上


我的问题是:什么属性使得Scala中的“类型优先”编程具有更少的代码和更少的bug?

我想说,预计bug会更少,因为您向编译器提供了尽可能多的信息,因此它可以在编译过程中发现问题。否则,它们将在运行时发生


关于更少的代码,我不确定,但可能想法是Scalaz为您带来了很多魔力,因此您不必自己实现它。

关于Scala,我没有什么要说的,我只看到了这一点,因为您将其标记为haskell。也就是说,这里有一些关于这个主题的链接:谢谢@bitemyapp-非常感谢。我会看一看。谢谢@Rado-你能给我一个这个可以解决的bug的例子吗?我原以为我知道,但后来我又想了想,我不确定。。。例如,我的想法是永远不要使用像字符串这样的简单类型,而是用域类型来表示它们,即使它们只是内存中的字符串。这将保护您不产生bug,因为字符串可以包含任何内容,但域类型不能。