这是"第一原理的Haskell编程"一书中的一个问题.
我正在阅读上面提到的书,第5章,练习2:参数化.
复制了这本书.
通过查看 - > a - > a,我们可以更加舒适地了解参数.这个假设函数a - > a - > a有两个且只有两个实现.
我不明白"只有两个实现"部分?可以任何人向我解释为什么只有2个实现?
阅读Haskell Monoid源代码,我看到了,
instance Monoid [a] where
{-# INLINE mempty #-}
mempty = []
{-# INLINE mconcat #-}
mconcat xss = **[x | xs <- xss, x <- xs]**
Run Code Online (Sandbox Code Playgroud)
我不明白xss,什么是xss?和列表生成器部分也很混乱,xs < - xss,怎么来的?
更新:
列表理解很容易理解,但看看代码,xss,xs,x,3个符号之间的关系是什么,为什么xs < - xss?我可以写xss < - xsss吗?
haskell ×2