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

发布于 2024-08-06 02:36:38 字数 263 浏览 5 评论 0原文

如何将整数转换为列表并以 Oz 格式转换回来?我需要将 321 这样的数字反转为 123

Oz 中的 Reverse 函数仅适用于列表,因此我想将 321 转换为 [3 2 1],反转它,然后将 [1 2 3] 转换回 123。这可以在 Oz 中完成吗?

How do I convert an integer to a list and back in Oz? I need to take a number like 321 and reverse it into 123.

The Reverse function in Oz only works on lists so I want to convert 321 to [3 2 1], reverse it, and convert [1 2 3] back to 123. Can this be done in Oz?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

给我一枪 2024-08-13 02:36:38

免责声明:直到 5 分钟前我才真正了解 Oz,并且只阅读了维基百科上的示例,因此以下内容可能充满错误。但是,它应该可以让您了解如何解决该问题。 (使函数尾递归作为练习留给读者)。

更新:以下版本已经过测试并且可以工作。

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

Disclaimer: I didn't actually know Oz until 5 minutes ago and only read the examples at Wikipedia, so the following may be riddled with errors. It should however give you a good idea on how to approach the problem. (Making the function tail-recursive is left as an exercise to the reader).

Update: The following version is tested and works.

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
杯别 2024-08-13 02:36:38

这应该更简洁地实现这一点:

{Show {StringToInt {Reverse {IntToString 123}}}}

干杯

This should do the trick more succintly:

{Show {StringToInt {Reverse {IntToString 123}}}}

Cheers

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文