




测试:


从测试代码入手:

---

特化
把第二个 seq 的头不断挪到 第一个 seq 的尾部

sT 作为一个整体parameterType只能转化,不能递归;
要递归,则要把 sT 的第一个元素拆出来(xT)

如果第一个seq 的元素个数小于 1+ 第二个 seq的元素个数,则把 xT 挪过去


type 指向:未递归完、递归完,两个分支中的一个









测试


直观写法

type 是最终排序好的,它也是个 seq;
debug 后的结果:

debug 的过程:


merge 只针对seq 进行了特化




因为 conditional 里面就是个 type

把 M、D和 type 挪到上面去——M挪上去,然后D替换掉



太TMD黑科技了。。。
原文:https://www.cnblogs.com/cx2016/p/13447373.html