能解释下这个mathematica定义的函数么?

问题描述:

能解释下这个mathematica定义的函数么?
partition[l_,v_,comp_]:=Flatten/@Reap[
Scan[
Which[com[#,v],Sow[#,-1],
comp[v,#],Sow[#,1],True,Sow[#,0]&,l],{-1,0,1}][[2]]
用法:
partition[{3,5,7,9,2,4,6,8,3,4},4,Less]
Sow[#,1]和Reap的第二个参数{-1,0,1}没看明白,

这有个现成的.