Как уже отмечали другие, если вы хотите сэкономить на пересчете результата, который вы уже вычислили, вы можете запомнить функцию. Это обменивает увеличенное использование памяти на увеличенную скорость - не забывайте время от времени очищать кэш, если вы подозреваете, что вам может не хватить памяти, если кэш будет расти без ограничений.
Однако, есть и другие оптимизации, которые можно выполнять для чистых функций, кроме запоминания их результатов. Например, чистые функции, не имеющие побочных эффектов, обычно безопасны для вызова в других потоках. Алгоритмы, которые используют множество чистых функций, часто могут быть распараллелены, чтобы использовать преимущества нескольких ядер.
Эта область будет становиться все более важной, так как массовые многоядерные машины становятся менее дорогими и более распространенными. Мы ставим перед собой цель долгосрочного исследования языка C #, чтобы выяснить, как воспользоваться преимуществами чистых функций (и нечистых, но «изолированных» функций) в языке, компиляторе и среде выполнения. Но это связано со многими трудными проблемами, проблемами, относительно которых в промышленности или научных кругах не существует единого мнения относительно наилучшего подхода. Высшие умы думают об этом, но не ожидают каких-либо серьезных результатов в ближайшее время.