var quickSort=function(arr){
var self=arguments.callee,
head=R.head(arr),
tail=R.tail(arr);
if(head!=null){
return R.concat(R.concat(self(R.filter(R.gt(head),tail))
,head)
,self(R.reject(R.gt(head),tail)));
}
return [];
};
quickSort([1,2,3,4,5,6,1,2,3,0,10,3,4,5,21,43,6,5,2,534,34,53,0]);
//output [0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 10, 21, 34, 43, 53, 534]
##一行的版本
var quickSort=([head,...tail])=>head==null?[]:R.concat(R.concat(quickSort(R.filter(R.gt(head),tail)),head),quickSort(R.reject(R.gt(head),tail)));
quickSort([1,2,3,4,5,6,1,2,3,0,10,3,4,5,21,43,6,5,2,534,34,53,0]);
##一行的es6
var qsort=([head,...tail])=> head==null ? []
: qsort(tail.filter(a=>a<head))
.concat(head)
.concat(qsort(tail.filter(a=>a>=head)));
console.log(qsort([1,2,3,4,5]));