有什么办法在Haskell中扩展库模块?扩展Haskell模块
例如,我想添加firstToLower
函数到Data.String
。当我创建我自己的Data.String
它掩盖库之一:
module Data.String where
import Prelude
import Data.Char (toLower)
firstToLower :: String -> String
firstToLower (c:cs) = toLower c : cs
firstToLower "" = ""
然后我得到错误试图import Data.String (lines)
:
Module `Data.String' does not export `lines'
这将是非常好的,如果这样的事情是可能的。如果不是,这种情况的最佳做法是什么?应在哪里放置这样的扩展名?
谢谢。
更新
我不打算释放我的分机作为一个库,只是想组织它在我的项目中以有意义的方式。
总之,你不能扩展haskell模块。你的用途是什么? – Satvik
我在我的问题中描述过用例。我正在寻求一种方法来处理我从图书馆错过的功能。我不想将它与我的通用代码混合,因为它们自然属于图书馆。 – lambdas
另外,您的示例函数是IMO针对标准库模块考虑的具体和微不足道的事情。请注意,你的实现不是很习惯,我更喜欢'firstToLower(c:cs)= toLower c:cs; firstToLower“”=“”'。 – leftaroundabout