2016-12-05 7 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 

 Смежные вопросы

  • Нет связанных вопросов^_^