如何将负整数转换为SML中的字符串,使用减号而不是波浪号?

时间:2011-11-19 07:09:00

标签: sml smlnj

标准SML库函数Int.toString使用~而不是-为负数前缀。是否有库函数可以使用-而不是写

fun i2s i =
    if i < 0 then "-" ^ Int.toString (~i) else Int.toString i

1 个答案:

答案 0 :(得分:7)

简而言之,没有。

SML旨在将~用于一元减号,以避免与-(二进制减号)混淆。当每个操作符只有一个目的而且SML用户必须忍受它时,这是一个明智的决定。

虽然读取以~开头的整数的字符串表示很奇怪,但是没有库函数可以将它转换为普通约定中的字符串。顺便说一句,你的功能是一个很好的方法。