Передача аргументов функциям Compose?

У меня есть ситуация, в которой я хотел бы передать аргументы функциям, связанным через Compose. Я понимаю, что могу использовать Curry в аргументах, но мне бы хотелось, чтобы результирующая функция была более гибкой. Вот простой тестовый пример, показывающий проблему:

> library(functional)
> f <- function(x, scale) x^2*scale
> g <- function(y, shift) sqrt(y)+shift
> h <- Compose(f,g)
> h(1)
Error in x^2 * scale : 'scale' is missing
> h(1, scale=1, shift=0)
Error in Reduce(function(x, f) f(x), fs,...) : 
  unused argument(s) (scale = 1, shift = 0)

Есть ли способ использовать Compose, чтобы результирующая функция по-прежнему разрешала аргументы при вызове? ?Composeмало чем полезен, разве что в качестве элегии прекрасной клавиатуре.

5
задан Josh O'Brien 6 August 2012 в 13:53
поделиться