一流功能的缺点

时间:2009-11-25 15:21:21

标签: function

在语言中使用first class functions是否有任何不利之处?

Joel in this entry

  

面向对象的编程语言并不完全相信   你应该被允许做任何功能。

我可能在这里天真,但如果没有太多问题,为什么不是所有语言都支持一流的功能

3 个答案:

答案 0 :(得分:7)

在一个理想的世界里,从来没有开发新功能的成本,我可以看到包括函数式编程技术的唯一缺点是对不熟悉功能技术的开发人员感到困惑(我真的看不到这同样是一个缺点。)

实际上,将函数视为第一类通常需要对编译器本身进行大量重写。这样做的成本必须权衡长期收益。

答案 1 :(得分:2)

如果引入更改需要昂贵的语言编译器,解释器和其他工具的重写,则添加此功能可能是一个缺点。如果语言的文化对这个功能提供的优势不够熟悉也可能是一个缺点,在这种情况下添加功能是浪费精力。

答案 2 :(得分:1)

此外,第一类函数需要运行时解释代码和某种形式的垃圾收集。这两个都增加了可能不适合某些问题和语言的开销。