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