Haskell中如何初始化带初始内容的自定义类型列表?
解决方法
在Haskell中,类型别名定义和变量初始化是两个独立的操作,不能在同一行用多个等号混写。你可以用以下两种方式实现需求:
方式1:分两行定义
先声明类型别名,再定义初始值:
type MyList = [(String, Int)] myList :: MyList = [("test", 2)]
方式2:同一行用分号分隔
如果一定要写在同一行,可以用分号把两个定义分开:
type MyList = [(String, Int)]; myList :: MyList = [("test", 2)]
为什么原写法报错?
type关键字是用来创建类型别名的,语法规则要求type 别名 = 对应类型,只能有一个等号。而你试图在同一行同时完成类型别名和变量赋值,违反了语法规则,所以会出现解析错误。
内容的提问来源于stack exchange,提问作者user19945252
相关产品推荐
相关产品推荐

