/* PROBLEM: Write a program sort(L1,L2) that takes a list L1 of numbers and sorts them into list L2 in ascending order using the insertion sort algorithm. */ -exports("sort","test") sort(Xs,Ys) { ? Xs ?= [X|Xs1] -> {|| sort(Xs1,Zs), insert(X,Zs,Ys) }, Xs ?= [] -> Ys=[] } insert(X,Zs,Ys) { ? Zs ?= [Z|Zs1], X > Z -> {|| Ys=[Z|Ys1], insert(X,Zs1,Ys1) }, Zs ?= [Z|Zs1], X <= Z -> Ys=[X|Zs], Zs ?= [] -> Ys=[X] } test(L) sort([1,3,45,2,66,33,99,1],L)