ghci 'break' 怪事

发布于 2022-08-03 19:25:42 字数 568 浏览 10 评论 2

  1. Prelude> odd 1
  2. True
  3. Prelude> odd 3
  4. True
  5. Prelude> odd 10
  6. False
  7. Prelude> break odd [1,3,10,11]
  8. ([],[1,3,10,11])
  9. Prelude> break even [1,3,10]
  10. ([1,3],[10])
  11. Prelude> break odd [1,3,10]
  12. ([],[1,3,10])
  13. Prelude> break even [1,2,3,4,5,6,7,8,9,10]
  14. ([1],[2,3,4,5,6,7,8,9,10])

复制代码

这个怎么解释呢?

[ 本帖最后由 drunkedcat 于 2008-10-2 10:59 编辑 ]

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

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

发布评论

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

评论(2

如梦 2022-08-11 19:27:51

原帖由 drunkedcat 于 2008-10-2 11:05 发表
我还以为是像 map 那样挨个检查然后分组呢。

这个是 partition 的功能:

Prelude> :m Data.List
Prelude Data.List> partition even [1,2,3,4,5,6,7,8,9,10]
([2,4,6,8,10],[1,3,5,7,9])
Prelude Data.List>

水染的天色ゝ 2022-08-04 17:19:01

汗。
理解错了。
原来 break 是把第一个返回 True 的元素和它后面的作为后一组,之前的作为前一组,我还以为是像 map 那样挨个检查然后分组呢。
不好意思。

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