Haskell中自定义运算符:.的含义是什么?
聊聊Haskell里的`:.”组合符号
嘿,这个`:.”符号其实是把构造符(cons)和一个点组合起来的自定义中缀构造符,专门用在自定义列表类型的场景里,给你看段实际代码就懂了:
-- The custom list type data List t = Nil | t :. List t deriving (Eq, Ord) -- Right-associative infixr 5 :.
简单拆解下这段代码:
- 第一行定义了一个泛型的
List类型,它有两种形态:Nil代表空列表,另一种就是用:.”把单个元素和另一个List`拼接起来,以此构建非空列表 - 第二行声明
:.”是**右结合**的中缀运算符,优先级为5,这样写1 :. 2 :. Nil时,会自动按1 :. (2 :. Nil)`的逻辑解析,完全符合我们构建列表的直觉
内容的提问来源于stack exchange,提问作者Atir
相关产品推荐
相关产品推荐

