我想用oz语言做一个列表

时间:2016-12-05 23:33:56

标签: 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 个答案:

答案 0 :(得分: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