Как преобразовать отрицательные целые числа в строки в SML с знаком минус вместо тильды?
Стандартная функция библиотеки SML Int.toString префикс отрицательных чисел с ~ вместо -. Существует ли библиотечная функция для использования -, вместо записи
fun i2s i =
if i < 0 then "-" ^ Int.toString (~i) else Int.toString i
Ответ 1
Короче говоря, No.
SML предназначен для использования ~ для унарного минуса, чтобы избежать путаницы с - (двоичный минус). Это разумное решение, когда у вас есть каждый оператор только для одной цели, и пользователи SML должны жить с этим.
Хотя странно читать строковое представление целого числа, начинающегося с ~, нет никакой библиотечной функции, чтобы преобразовать ее в строку в обычном соглашении. Кстати, ваша функция - хороший способ сделать это.