var R = require("ramda"); function quickSort(list) { var len = R.length(list); if (len == 0 || len == 1) return list; var pivot = R.last(list); var firstHalf = R.filter(i => i<= pivot, R.init(list)); var secondHalf = R.filter(i => i> pivot, R.init(list)); return R.concat(quickSort(firstHalf), R.prepend(pivot, quickSort(secondHalf))); } console.log('QUICK SORT:', quickSort([1, 9, 3, 10, 5, 4, 6, 7, 8, 2]));