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