如何在ATS中将整数转换为字符串?

时间:2018-02-19 12:36:54

标签: ats

我需要一个函数,比如int2string,它可以将给定的整数转换为它的字符串表示形式。如果可能,int2string可以采用第二个参数来引用表示的基础。默认情况下,第二个参数为10.

2 个答案:

答案 0 :(得分:1)

tostring_int。它可以在prelude/SATS/tostring.sats中使用,如果您愿意,可以重载tostring或其他内容。)

答案 1 :(得分:0)

这有效 - 虽然它可能不是最好的风格。请随时改进这个答案。

extern
fun
int2string(i: int, b: int): string

(* ****** ****** *)

implement
int2string(i, b) = let

    val () = assertloc(i >= 0)

    fun dig2str(i:int): string =    
        if i = 0 then "0"
        else if i = 1 then "1"
        else if i = 2 then "2"
        else if i = 3 then "3"
        else if i = 4 then "4"
        else if i = 5 then "5"
        else if i = 6 then "6"
        else if i = 7 then "7"
        else if i = 8 then "8"
        else if i = 9 then "9"
        else "" // can add A, B, C,...

    fun helper(i: int, res: string): string =
        if i > 0 then helper(i / b, dig2str(i % b) + res)
        else res
in
  helper(i, "")
end