Как преобразовать отрицательные целые числа в строки в SML со знаком минус вместо тильды? - PullRequest
12 голосов
/ 19 ноября 2011

Стандартная функция библиотеки SML Int.toString ставит префикс отрицательных чисел с ~ вместо -. Есть ли библиотечная функция для использования - вместо написания

fun i2s i =
    if i < 0 then "-" ^ Int.toString (~i) else Int.toString i

1 Ответ

7 голосов
/ 19 ноября 2011

Короче говоря, нет.

SML предназначен для использования ~ для унарного минуса, чтобы избежать путаницы с - (двоичный минус).Это разумное решение, когда у вас есть каждый оператор только для одной цели, и пользователи SML должны с этим мириться.

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

...