如何将整数转换为列表,然后再转换回Oz?我需要取一个像321这样的数字,并将其反转为123。
Oz中的Reverse函数只适用于列表,所以我想将321转换为3 2 1,反转它,并将1 2 3转换回123。这可以在Oz中完成吗?
发布于 2009-09-26 19:38:22
免责声明:直到5分钟前,我才真正了解Oz,并且只在Wikipedia上读到了示例,所以下面的内容可能充满了错误。然而,它应该会给你一个如何处理这个问题的好主意。(让函数尾递归,留给读者作为练习)。
更新:以下版本经过测试并正常工作。
local
% turns 123 into [3,2,1]
fun {Listify N}
if N == 0 then nil
else (N mod 10) | {Listify (N div 10)}
end
end
% turns [1,2,3] into 321
fun {Unlistify L}
case
L of nil then 0
[] H|T then H + 10 * {Unlistify T}
end
end
in
% Turns 123 into 321
{Browse {Unlistify {Reverse {Listify 123}}}}
end发布于 2010-01-02 01:56:57
这应该会更简洁地完成这个技巧:
{Show {StringToInt {Reverse {IntToString 123}}}}干杯
https://stackoverflow.com/questions/1481948
复制相似问题