是否可以使用静态或从属类型来证明函数是幂等的?
我已经搜索了Google以及StackOverflow / StackExchange上的各个地方,但是都没有运气。我找到的最接近的是有关Idris的对话:https ://groups.google.com/forum/#! topic/ idris-lang/ yp7vrspChRg
不幸的是,这种讨论让我有些头疼。
3
我不确定将其发布为答案,因为我不确定100%,但是由于赖斯定理,我相信这是不可能的。
—
gardenhead 2016年
这是一个令人着迷的问题,我的直觉表明,应该使用受限的,非图灵完整的语言来做到这一点。但是,程序员专注于有关软件开发生命周期的问题(有关详细信息,请参阅帮助中心),而这似乎是计算机科学的问题。计算机科学站点可能更合适,并且可以带来更好的答案。
—
amon 2016年
@gardenhead Rice定理指出,给定程序行为可能具有的任何属性,有时就无法确定程序是否具有该属性。“这有时是不可能的”和“这是不可能的”之间有很大的区别。
—
Tanner Swett
我的最后评论很模糊。无论如何,这就是赖斯定理要说的:没有一种算法可以正确地将所有函数归为等幂或非等幂。但是,仍然有有用的算法将某些功能归类为等幂与否。
—
Tanner Swett