我不明白函数式编译器如何让处理不可变数据结构的代码运行更快,而且不会导致堆栈溢出等问题。
例如,在树中进行插入操作时,必须在添加新节点之前复制整个树并返回已复制的树,而命令式语言只需要在新节点上添加指针即可。如果插入操作运行了数百万次,它将占用大量内存,并且当树越来越大时,复制过程会变得越来越慢。那么函数式编译器是如何进行优化的呢?
我不明白函数式编译器如何让处理不可变数据结构的代码运行更快,而且不会导致堆栈溢出等问题。
例如,在树中进行插入操作时,必须在添加新节点之前复制整个树并返回已复制的树,而命令式语言只需要在新节点上添加指针即可。如果插入操作运行了数百万次,它将占用大量内存,并且当树越来越大时,复制过程会变得越来越慢。那么函数式编译器是如何进行优化的呢?