【发布时间】:2012-09-29 15:14:38
【问题描述】:
我研究 Scala(以及扩展的 Haskell)已经有一段时间了,我完全被他们的类型系统和函数范式所吸引。就在最近,我偶然发现了“类型级编程”,并被卷入了诸如 Functor 之类的东西和其他我没听说过的东西(除了 Monad,我知道它是一种神秘的东西,但不知道要使用什么它!)。 我研究了 Haskell 中的概念(顺便被它的类型系统和类型推断能力迷住了),我对类型成为 Functor、PointedFunctor、ApplicativeFunctor 或 Monoid 的含义有了一个纯技术层面的深刻理解(即使在技术层面上,我仍然不知道 Monad 是什么)但我觉得自己像个白痴,因为我认为这一切没有用,除了可能获得了对某些概念的良好分类(?)。这些东西有什么用?为什么要让生活如此复杂?为什么要研究这些东西并将它们分类为不同的类别?
【问题讨论】:
-
吹毛求疵:我不会说这些简单的类型类有资格作为类型级编程(而且我从未见过它们被这样分类),尽管它们显然使用类型。类型级编程在类型方面做得更多。
-
@delnan Tnx 进行澄清。非常正确。正如问题中提到的,我在学习类型级编程时被拖到了他们身边。并不是说它们本身就是类型级编程。
-
投票支持重新开放:这个问题可能很笼统,但我认为这是一个常见的问题,我们已经得到了一些好的、“建设性”的答案。并非所有“开放式”问题都是不好的或容易引发激烈的争吵,它们通常可以通过从不同角度阐明一个主题来产生有趣的见解。
-
@Landei 我很久以前就放弃了 ;-)
标签: scala haskell types monads functor