为什么函数式语言将对象用于数据类型?

时间:2018-05-31 13:07:40

标签: scala functional-programming kotlin purely-functional

我觉得大多数函数式语言(如Kotlin和Scala)都将所有数据类型都作为对象处理。

Double,Float,Long,Int ..它们都是实际的物体而且它们没有提供任何原始的替代品?

为什么函数式语言支持对象? 是否因为提供操作重载和多态更容易?或者这有更深层的含义吗?

1 个答案:

答案 0 :(得分:4)

这与功能语言无关。事实上,对于几乎所有面向对象的语言都是如此。

人为地将价值分成两种不同的东西只会产生复杂性, 为什么会这样?

完全可以为数字对象生成有效的算术运算代码。实际上,大多数高性能OO实现生成代码,处理原始本机号码类型,即使对于“对象号”也是如此。因此,如果您可以为这两种情况生成相同的机器代码,但其中一种情况更简单,因为它没有这种人工拆分,那么看起来很明显什么是更好的设计,不是吗?

现在,如果你想问我为什么Java的设计师做出了这个特别的选择,我不能告诉你。他们当然应该知道自我团队的工作,他们毕竟在Sun工作。