无法将char与字符串ML连接起来

时间:2018-01-09 19:39:09

标签: ml polyml

您好我正在尝试在ML中执行incFirst功能。该功能执行以下操作:incFirst" bad" =" cad"第一个" shin" ="瘦"。这就是我尝试fun incFirst s = chr(ord s + 1) ^ substring(s, 1, size s -1); 我收到以下错误:无法使用char( In Basis )统一字符串( In Basis )          (不同类型的构造函数) 在chr(ord s + 1)附近找到^ substring(s,1,... - ...) 异常 - 失败"静态错误"提高 如果" ^"我知道如何用字符串连接char。运营商不工作?

1 个答案:

答案 0 :(得分:0)

操作员正在工作,只是你只能连接字符串, 并且ord对字符进行操作,而不对字符串进行操作 (字符与单字符字符串不同。)

您需要提取第一个字符,然后将结果转换为字符串

fun incFirst s = String.str(chr (ord (String.sub (s,0)) + 1)) ^ substring(s, 1, size s - 1)

或者您可以绕过列表

fun incFirst s = let
    fun inc (c::cs) = (chr(ord c + 1))::cs
in
    implode (inc (explode s))
end