首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Haskell中检测循环列表的能力会破坏该语言的任何属性吗?

在Haskell中检测循环列表的能力会破坏该语言的任何属性吗?
EN

Stack Overflow用户
提问于 2015-05-16 14:45:07
回答 2查看 588关注 0票数 19

在Haskell中,一些列表是循环的:

ones = 1 : ones

其他的则不是:

nums = [1..]

然后有这样的事情:

more_ones = f 1 where f x = x : f x

这表示与ones相同的值,当然,该值是一个重复序列。但它是否在内存中表示为循环数据结构是值得怀疑的。(实现可以做到这一点,但是this answer explains that "it's unlikely that this will happen in practice"。)

假设我们使用一个Haskell实现,并使用一个内置函数isCycle :: [a] -> Bool来检查参数在内存中表示的结构。如果列表是物理循环的,则返回True;如果参数的长度有限,则返回False。否则,它将无法终止。(我想象“that in”,因为不可能用Haskell编写该函数。)

此函数的存在会破坏语言的任何有趣属性吗?

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

https://stackoverflow.com/questions/30272662

复制
相关文章

相似问题

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