Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打印UTF-8空集_Utf 8_Sml_Smlnj_Windows Console - Fatal编程技术网

打印UTF-8空集

打印UTF-8空集,utf-8,sml,smlnj,windows-console,Utf 8,Sml,Smlnj,Windows Console,这可能是一个以Windows为中心的问题。不管怎样,我决定在SML中玩一玩。这是自然数的一种编码,其中每个数都由一个纯集合表示——一个元素本身就是集合的集合 我编写了以下代码: datatype set = EMPTY | SET of set list; fun succ EMPTY = SET [EMPTY] | succ (SET sets) = SET (sets @ [SET sets]); fun ordinal 0 = EMPTY | ordinal n = succ

这可能是一个以Windows为中心的问题。不管怎样,我决定在SML中玩一玩。这是自然数的一种编码,其中每个数都由一个纯集合表示——一个元素本身就是集合的集合

我编写了以下代码:

datatype set = EMPTY | SET of set list;

fun succ EMPTY = SET [EMPTY]
|   succ (SET sets) = SET (sets @ [SET sets]);

fun ordinal 0 = EMPTY
|   ordinal n = succ (ordinal (n-1));

fun pprint S e = 
    let
        fun f EMPTY = e
        |   f (SET sets) = "{" ^ (String.concatWith "," (map f sets)) ^ "}"
    in
        f S
    end;

fun display n e = print ( "\n" ^ (pprint (ordinal n) e ) ^ "\n\n");
display函数采用自然数和空集的字符串表示形式。例如:

- display 3 "O";

{O,{O},{O,{O}}}

val it = () : unit
(与维基百科中关于冯·诺依曼序数的条目相吻合)。作为一种繁荣,我想使用一个,所以我做了以下几点:

- display 3 "\195\152";

{Ø,{Ø},{Ø,{Ø}}}

}}

val it = () : unit
(在启动SML之前,需要在窗口的命令提示符下运行
chcp 65001
,以使其正常工作)

在弦的中间有一个幻像线断裂,还有一个额外的“}”。我不知道为什么。我已经尝试过其他代码的值<代码> n>代码>,有时在中间行得到幻像框,并且总是有一个额外的“}”。我尝试过各种变通方法(除了放弃Windows for Linux),但没有成功


有没有人知道一种可靠的方法可以通过SML中的“O”来打印空集?

在丹麦语中,大写字母Ø以8位编码的形式出现。仅供参考,它在我的OS X上显示得很好。@IonuțG.Stan肯定是Windows命令提示符处理Unicode的方式或SML/NJ将“\xxx”字符传递给Windows的方式有问题。古怪的