LINUX.ORG.RU

История изменений

Исправление Virtuos86, (текущая версия) :

local
    val foldl = List.foldl
    val compare = String.compare
    val rec sort = fn (x::xs, y::ys) =>
        val (a, b) = x
        val (a1, b1) = y
        case compare(a, a1) of
          LESS => x::(sort(y, xs))
        | EQUAL => x::y::xs
        | GREATER => y::x::xs
in
    val sorted = fn x::xs =>
        foldl(sort, [x], xs)
end

sorted должно быть тем, что тебе нужно. По крайней мере, я целый час почитал мануалы по SML :)

Исходная версия Virtuos86, :

local
    val foldl = List.foldl
    val compare = String.compare
    val rec sort = fn (x::xs, y::ys) =>
        val (a, b) = x
        val (a1, b1) = y
        case compare(a, a1) of
          LESS => x::(sort(y, xs))
        | EQUAL => x::(sort(y, xs))
        | GREATER => y::x::xs
in
    val sorted = fn x::xs =>
        foldl(sort, [x], xs)
end

sorted должно быть тем, что тебе нужно. По крайней мере, я целый час почитал мануалы по SML :)