[英]Defining how long a list can be in Haskell
因此,我是Haskell的新手,我试图定义一个最长为4个元素的列表。 到目前为止,我的type IntL = [Int,Int,Int,Int]
但是我一直认为必须有一种更好/合适的方法来做到这一点。 在那儿?
它可能看起来很愚蠢,并且肯定不会扩展,但那又如何呢?
data Max4 a
= Empty
| One a
| Two a a
| Three a a a
| Four a a a a
与type IntL = Max4 Int
吗? 它是基本的,您应该能够理解它,并且可以通过对其执行操作来学到很多东西。
基本的Haskell类型并不强大,无法对列表的最大长度进行编码。 为了做到这一点,您必须依赖于扩展名,例如GADT和Phantom Types,但这也不是那么简单。
如果您真的是新手,我建议您学习其他基本概念,例如Monads,IO和其他习语。
该网站是有关Haskell初始方法的很好阅读:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.