您好我正在尝试在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。运营商不工作?
答案 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