2016-12-05 34 views
1

我想用oz语言做一个列表: 但我不明白 这是我的简单想法,但它不是正确的,你能帮我吗我想用oz语言做一个列表

declare 
fun {Permute L } 
    if L==nil then nil 
    else L.2.1|L.1|L.2.2 
    end 
end 

fun {Trie L } 
    if L==nil then nil 
    elseif L.1 < L.2.1 then L 
    else {Permute L} 
    end 
    {Trie L.2 } 
end 

{Browse {Trie [3 4 2 1 5 ]}} 
+1

之前你问你应该寻找和研究。我很快找到[Lazy quicksort](https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=oz%20sort%20list)。 – MikeJRamsey56

回答

0
local 
    fun {Sort Xs} 
     fun {BubbleSort Xs} 
     case Xs 
     of X1|X2|Xr andthen X2 < X1 then X2|{BubbleSort X1|Xr} 
     [] X1|X2|Xr andthen X1 =< X2 then X1|{BubbleSort X2|Xr} 
     [] X|nil then X|nil 
     end 
     end 

     fun {Sort Xs I} 
     if I > 0 then {Sort {BubbleSort Xs} I-1} 
     else Xs 
     end 
     end 
    in 
     {Sort Xs {Length Xs}} 
    end 
in 
    {Browse {Sort [3 4 2 1 5]}} 
end 
相关问题