lama_byterun/performance/Sort.lama

31 lines
490 B
Text
Raw Permalink Normal View History

2022-10-25 02:57:51 +03:00
fun compare (x, y) {
x - y
}
2021-11-22 15:51:47 +03:00
fun bubbleSort (l) {
fun inner (l) {
case l of
x : z@(y : tl) ->
if compare (x, y) > 0
then [true, y : inner (x : tl) [1]]
else case inner (z) of [f, z] -> [f, x : z] esac
fi
| _ -> [false, l]
esac
}
fun rec (l) {
case inner (l) of
[true , l] -> rec (l)
| [false, l] -> l
esac
}
rec (l)
}
fun generate (n) {
if n then n : generate (n-1) else {} fi
}
bubbleSort (generate (1000))