Ответ 1
Короче говоря, No.
SML предназначен для использования ~
для унарного минуса, чтобы избежать путаницы с -
(двоичный минус). Это разумное решение, когда у вас есть каждый оператор только для одной цели, и пользователи SML должны жить с этим.
Хотя странно читать строковое представление целого числа, начинающегося с ~
, нет никакой библиотечной функции, чтобы преобразовать ее в строку в обычном соглашении. Кстати, ваша функция - хороший способ сделать это.