Comments 3
Проблема такого подхода в том, что нам будет необходимо создавать и хранить несколько экземпляров класса.
Где здесь проблема? Каринованные функции - те же объекты.
Да, каррированные функции действительно являются объектами, как и любые другие функции собственно.
Проблема в том, что это лишний однозадачный класс в проекте, а вместо хранения одной переменной-функции мы теперь храним и объект класса, и еще одну функцию в нем, а она не совсем бесплатная в таком виде.
Как раз изучаю Haskell. Там каррирование используется в основном, чтобы частично примененную функцию потом передать в функцию высших порядков. Ну, и для того, чтобы в бесточечном стиле лишние аргументы не пробрасывать. Еще прикольно одну функцию частично применять к другой. Результирующий тип по началу кажется очень неожиданным.
Функциональный Kotlin. Часть 2. Каррированные функции и где они обитают