首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Oz中将整数转换为列表,反之亦然?

如何在Oz中将整数转换为列表,反之亦然?
EN

Stack Overflow用户
提问于 2009-09-26 19:17:13
回答 2查看 707关注 0票数 0

如何将整数转换为列表,然后再转换回Oz?我需要取一个像321这样的数字,并将其反转为123

Oz中的Reverse函数只适用于列表,所以我想将321转换为3 2 1,反转它,并将1 2 3转换回123。这可以在Oz中完成吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-26 19:38:22

免责声明:直到5分钟前,我才真正了解Oz,并且只在Wikipedia上读到了示例,所以下面的内容可能充满了错误。然而,它应该会给你一个如何处理这个问题的好主意。(让函数尾递归,留给读者作为练习)。

更新:以下版本经过测试并正常工作。

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2010-01-02 01:56:57

这应该会更简洁地完成这个技巧:

代码语言:javascript
复制
{Show {StringToInt {Reverse {IntToString 123}}}}

干杯

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1481948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档