Поддерживает ли стандарт ML Unicode?
Поддерживает ли стандарт ML Unicode?
Я считаю, что это не так, но не может найти никакой авторитетной документации для SML, заявляющей о таких.
Да или нет - все, что нужно, но вы должны знать об этом. Никаких догадок или я не верю в ответы. Правильная ссылка была бы лучше.
Ответы
Ответ 1
Не совсем. Все, что есть в стандарте, в настоящее время - это возможность использовать экраны \uXXXX
в символьных и строковых литералах и что он, по крайней мере, разрешает Unicode как базовую кодировку символов для char
или необязательный WideChar.char
. Но стандартная базовая библиотека не предусматривает никакой поддержки дополнительных функций, поддерживающих Unicode.
Частные реализации могут иметь дополнительную поддержку, и вы можете найти некоторые сторонние библиотеки unicode, но об этом (к сожалению, у меня нет указателей).
Ответ 2
Это сильно зависит от того, что вы подразумеваете под "Unicode", который представляет собой набор многих стандартов для многих вещей. Я не видел ни одного языка или системы, которые полностью поддерживают Unicode, и я даже не знаю, что это будет означать во всех деталях.
Вы можете работать с UTF-8 в SML: эта кодировка была изобретена, чтобы упростить поддержку ASCII-приложений Unicode. Это может привести к лучшему и эффективному представлению Юникода, чем, например, UTF-16 на Java, который официально поддерживает Unicode, но есть много практических проблем с ним (например, суррогатные символы).
С UTF-8 в строках SML возникает вопрос, как работать со строковыми литералами. Такие системы, как Poly/ML, позволяют переопределить мелкий принтер ML toplevel для type string
, и также возможно завершить компилятор для обработки строковых литералов в дружественном Unicode формате. Оба это сделано в Isabelle/ML, который основан на Poly/ML. Так что если вы возьмете ту большую теоретическую среду доказательства, как платформу разработки ML, у вас есть встроенная поддержка Unicode (через так называемые символы Isabelle).