Li-Fan Chen says to YSITD
const inOrder = (fn) => (datas) => () => { data = datas.pop(); if(data) fn(data, inOrder(fn)(datas)) }