Como encadear a execução da matriz de funções quando cada função retorna adiada.promise?

Eu criei meu primeiro objeto adiado no Node.js usando o módulo adiado e funciona muito bem quando passo o resultado para a próxima função e desencadeio a resolução e a rejeição. Como encadear a execução de uma matriz de funções quando cada função retorna deferred.promise? Eu tenho como parâmetros de entrada uma matriz de funções e um parâmetro de entrada para a primeira função e todas as próximas funções obtêm parâmetros da anterior.

Funciona comof1(100).then(f2).then(f3), mas como quando tenho n número de funções.

questionAnswers(6)

yourAnswerToTheQuestion