Sml 以Poly/ML打印Unicode字符

Sml 以Poly/ML打印Unicode字符,sml,polyml,Sml,Polyml,如何在SML(使用Poly/ML)中打印小写希腊文 我尝试了以下方法: print "ε"; (* Error-unprintable character found in file *) print "\u03B5"; (* Error-Conversion exception (Invalid string constant) raised while converting \u03B5 to string *) 难道这根本不可能吗?当然,终端的工作是实际渲染字符,因此,应该可以将原始字符

如何在SML(使用Poly/ML)中打印小写希腊文

我尝试了以下方法:

print "ε"; (* Error-unprintable character found in file *)
print "\u03B5"; (* Error-Conversion exception (Invalid string constant) raised while converting \u03B5 to string *)

难道这根本不可能吗?当然,终端的工作是实际渲染字符,因此,应该可以将原始字符代码打印到标准输出?

Unicode转义序列
\u03B5
对应于UTF-16

您的终端可能运行UTF-8,其中ε为0xCE 0xB5。以十进制字节的形式输入:

> print "\206\181\n";
ε

谢谢-值得注意的是,String.size函数会将这些字节视为两个独立的字符,因此,如果您想在打印时正确计算字符串的长度,就必须编写自己的函数。我在(将.sml后缀替换为.sig以查看签名)。