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