Underscore.js: como encadear funções personalizadas

UsandoUnderscore.js, Eu posso escrever o seguinte que retorna42:

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

Eu tenho uma função personalizada, não parte do Underscore.js chamadadouble():

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

Gostaria de poder chamar essa função em uma cadeia de sublinhado, como se fosse parte do sublinhado. Gostaria de escrever o seguinte, que gostaria de retornar84:

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

Isso não pode funcionar, pois o Underscore não defineDuplo(). eu poderia usartap() como em:

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

Isso é válido, mastap aplica a função ao seu argumento e retorna o argumento, não o resultado da função. Então, parece-me que eu precisaria de uma espécie detap que retorna o resultado da função aplicada ao seu argumento. Existe algo assim no Underscore.js? Estou sentindo falta de algo terrivelmente óbvio?

questionAnswers(7)

yourAnswerToTheQuestion