作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
y 以下应该是对任何 IsString 的概括。类型。输入 a需要在Monoi-6ren">
以下函数定义了一个字符串的漂亮连接,即不累积空格的字符串:
(><) :: String -> String -> String
x >< "" = x
"" >< y = y
x >< y = x <> " " <> y
IsString
的概括。类型。输入
a
需要在
Monoid
为了与
mconcat
连接的类(=
<>
来自
Semigroup
):
(><) :: (Monoid a, IsString a) => a -> a -> a
x >< mempty = x
mempty >< y = y -- redundant pattern match!
x >< y = x <> (fromString " ") <> y -- redundant pattern match!
a
即
(Monoid a, IsString a)
但不是
Eq a
可以在这里使用。
(<+>) :: (Monoid a, IsString a, Eq a) => a -> a -> a
x <+> "" = x
...
最佳答案
mempty
这里只是一个变量名。你也可以写
x >< y = x
x >< y = y
x >< y = ...
==
要求它。测试,例如在保护条款中。
x >< y
| x == mempty = y
| y == mempty = x
| otherwise = x <> " " <> y
关于haskell - 与幺半群的冗余模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57799777/
我是一名优秀的程序员,十分优秀!