actually, the compare func return value always zero or non-zero, so we need the confused condition of <=0, we only need if( pfunc(...) ) that's enough