Char.toString без специальной обработки "и \" - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь преобразовать символы в строки следующим образом:

Char.toString(#"x")

Для большинства символов это работает, однако для " и \ перед ним добавляется дополнительный \:

- Char.toString(#"\"");
val it = "\\\"" : string

Это нежелательное поведение для меня. Я хочу, чтобы приведенный выше фрагмент кода возвратил val it = "\"" : string. Есть ли в SML встроенная функция, которая может это сделать?

1 Ответ

0 голосов
/ 08 сентября 2018

С документация Char.toString:

возвращает печатаемое строковое представление символа, используя при необходимости escape-последовательности SML. Печатные символы, кроме # "\" и # "\" ", остаются без изменений. Обратная косая черта #" \ "становится" \\ "; двойная кавычка #" \ "" становится "\\" ". [...]

Чтобы преобразовать символ в строку длиной один, содержащую этот символ, используйте функцию String.str .

А из документации String.str:

str c - строка размера один, содержащая символ c.

Так что str #"\"" будет делать именно то, что вы хотите.

...