测试:
从测试代码入手:
---
特化
把第二个 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