Underscore.js: cómo encadenar funciones personalizadas

UtilizandoUnderscore.js, Puedo escribir lo siguiente que devuelve42:

_([42, 43]).chain()
    .first()
    .value()

Tengo una función personalizada, que no forma parte de Underscore.js llamadadouble():

function double(value) { return value * 2; };

Me gustaría poder llamar a esta función en una cadena de subrayado, como si fuera parte de subrayado. Me gustaría escribir lo siguiente, que me gustaría devolver84:

_([42, 43]).chain()
    .first()
    .double()
    .value()

Esto no puede funcionar porque el subrayado no definedoble(). Podría usartap() como en:

_([42, 43]).chain()
    .first()
    .tap(double)
    .value()

Esto es válido, perotap aplica la función a su argumento y devuelve el argumento, no el resultado de la función. Entonces me parece que necesitaría una especie detap que devuelve el resultado de la función aplicada a su argumento. ¿Hay algo como esto en Underscore.js? ¿Me estoy perdiendo algo terriblemente obvio?

Respuestas a la pregunta(7)

Su respuesta a la pregunta