function loggingCompare(
logger:(a:number,b:number)=>void,
comp:(a:number,b:number) => number){
return (a:number,b:number)=>{
logger(a,b)
return comp(a,b)
}
}
function create(bbb:{smallFirst:Boolean}){
if (!bbb.smallFirst){
return (a:number,b:number) => b-a
}else{
return (a:number,b:number) => a-b
}
}
function processArray(a:number[]){
let comCount = 0
const logger =(a:number,b:number)=>{
// console.log("compare",a,b)
comCount++
}
const comp = create({smallFirst:true})
a.sort(loggingCompare(logger,comp))
return comCount
}
let a = [2,3,4,5,6,7,8,10,1]
const comCount1=processArray(a)
const comCount2=processArray(a)
console.log(a)
console.log(comCount1,comCount2)