据称列表被定义为:data List a = Null | Cons a (List a),但它具有我们都知道的特殊语法.我可以看到如何:只是Cons类型构造函数的别名,但1)这个语法实现的方式/位置2)我可以为其他数据类型定义我自己的特殊语法,就像[whamlet|Hello World!|]Yesod使用的那样.
谢谢.
您可能正在寻找OverLoadedlists ghc扩展.这允许您使用列表语法[1,2,3]来初始化和模式匹配向量,集和其他结构.链接提供了一些如何设置列表重载的示例.
[1, 2, 3, 4, 2] :: Set Int
[1, 2, 3, 4, 5] :: Vector Int
Run Code Online (Sandbox Code Playgroud)
它目前不处理异构列表,也不会过度加载:运算符.
您可能想要阅读扩展程序上的trac页面.
如果您正在寻找通用的cons运算符,您应该查看镜头包中的Control.Lens.Cons模块
.特别是运营商.从hackage文档复制:<|
>>> a <| []
[a]
>>> a <| Seq.fromList []
fromList [a]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
257 次 |
| 最近记录: |