在GHC 7.8上模仿“燃烧的桥梁”

时间:2015-07-03 16:53:10

标签: haskell foldable

是否有一种简单的方法可以模拟GHC 7.8或可能更老的燃烧桥梁提案(也称为可折叠/可遍历提案,GHC 7.10的一部分)?

某些方面真的很难效仿。这包括更改类层次结构。最有可能的是,该部分无法模仿。

可以简单地从Data.Foldable和朋友导入新功能和功能替换。但是,lengthnull等功能不适用于新类型签名。以下代码段实现了假装烧桥的一些方面:

import Prelude hiding (elem, foldr, length, maximum, null)
import Data.Foldable (Foldable, elem, foldMap, foldr, maximum, toList)
import Data.Traversable (Traversable, traverse)

length :: Foldable t => t a -> Int -- will become a method of Foldable
length = Data.Foldable.foldl' (\c _ -> c + 1) 0
null :: Foldable t => t a -> Bool -- will become a method of Foldable
null = foldr (\_ _ -> False) True

是否有一些包以更完整的方式执行此操作?

0 个答案:

没有答案