Поддерживает ли стандарт 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).