我一直在阅读函数式编程,我有两个问题,希望有人可以帮助我。
是否有其他领域的功能编程可能最终导致资源沉重/效率低下与OOP /程序编程相比?
答案 0 :(得分:1)
我已经读过,如果你经常访问相同的数据,懒惰的函数式程序效率很低,因为检查表达式是否已被评估会产生额外的开销。
这涉及指针上的checking a tag bit。它很便宜。
函数式编程在图形编程的上下文中可能需要资源,因为它会创建大量临时对象
这取决于实施。纯FP语言中的分配很便宜,因为不变性意味着您可以避免一些写入障碍。对象分配大致类似于OO语言,尽管某些GC(例如GHC)与例如GHC相比非常有效。 Java的。
是否有其他领域的功能编程可能最终导致资源沉重/效率低下与OOP /程序编程相比?
有很多问题需要非常严格的资源使用。例如。操作系统。在这样的环境中,您需要用于直接访问硬件的库以及在适当位置改变内存的能力。根据您正在使用的功能语言实现,您可能有也可能没有。
很难预测评估懒惰功能程序的时间和空间成本
对延迟评估成本进行建模是比较困难的,因为完成的工作量和完成时间取决于输入数据,该输入数据仅在运行时可用。
实际上,语言允许您选择是否要使用严格或惰性评估,因为它们都不适合所有情况。