Pull to refresh

Comments 3

Проблема такого подхода в том, что нам будет необходимо создавать и хранить несколько экземпляров класса.

Где здесь проблема? Каринованные функции - те же объекты.

Да, каррированные функции действительно являются объектами, как и любые другие функции собственно.
Проблема в том, что это лишний однозадачный класс в проекте, а вместо хранения одной переменной-функции мы теперь храним и объект класса, и еще одну функцию в нем, а она не совсем бесплатная в таком виде.

Как раз изучаю Haskell. Там каррирование используется в основном, чтобы частично примененную функцию потом передать в функцию высших порядков. Ну, и для того, чтобы в бесточечном стиле лишние аргументы не пробрасывать. Еще прикольно одну функцию частично применять к другой. Результирующий тип по началу кажется очень неожиданным.

Sign up to leave a comment.

Articles