high佬全 发表于 2015-1-29 01:21:12

erlang中生成器和递归求助

这次轮到我要请求帮助啦,希望能有人能回答下我这个问题,到底下面这段函数的作用和运行次序是怎样的?perms() ->[[]];perms() ->.splits([]) ->[{[],[]}];splits( = Ys) ->[ {[] , Ys} | [{ , Bs } || {As , Bs} <- splits(Xs) ] ].insert(X,As,Bs) ->   lists:append( , Bs] ).希望有人能回答我吧!如果没有,那这次也当是留给将来的我来解!而下面这段代码我就看得懂qsort([]) -> [] ;qsort() ->qsort() ++ ++ qsort().大概是取头部作为支点,然后利用生成器 Xs分成两段列表(一段比X大,一段比X少),再分别递归这两段列表,最终得出一个从大到少的列表,就像c/c++的快速排序的算法,大家不清楚可以百度下。

页: [1]
查看完整版本: erlang中生成器和递归求助