我正在编写一些代码,我想我可以从无限的元组列表中创建一个无限的映射.以下内容:
Map.fromList [(i,i+1)|i<-[1..]]
当然,我立刻发现Data.Map和Data.Set分别不支持无限的Maps和Sets.我注意到一个关于Data.Set贪婪实现的类似问题fromList,并且在阅读了这里的答案之后,很清楚,Set的懒惰和贪婪实现都是可能的,只是贪婪的实现更好.但是,我真的不明白为什么懒惰的实现Map.fromList不起作用.与密钥存储方式有关?
我有一个使用这两个程序Int和Integer,因为少数人的函数返回的结果是相当大的.我厌倦了使用的fromIntegral无处不在,我想知道是否有一种方式来获得哈斯克尔忽视的区别Int,并Integer在编译时.