Здравствуйте, MadHuman, Вы писали:
S>>Например? Вроде единственное что позволяет делать иммутабельность — это раскидывать исполнение по потокам не боясь побочных эффектов. MH>например определять что в разных частях одно и тоже подвыражение и оставлять только одно его вычисление. MH>более мощные возможности по упрощению выражений.
Даже не знаю: имхо, но ситуации когда проводится тяжёлое вычисление, которое можно переиспользовать и которое, к тому-же, не очевидно — либо редкие, либо искусственные. А компилятору с императивного языка ничего не мешает сделать подобную оптимизацию в рамках одного выражения, а в рамках нескольких это сделает программист.
Нет, я не отрицаю что глобальные оптимизации в ФП могут быть лучше, но по опыту с SQL чтобы добиться какой-либо эффективности от этих оптимизаций нужно прилагать сознательные усилия (имхо, само собой).