Haskell Prelude隐藏,UNDO?

时间:2011-11-06 22:20:01

标签: haskell

在一个文件中,我需要使用常规前奏(++)运算符,我也希望为(++)实现自己的行为。我在我的文件顶部使用了import Prelude hiding (++),定义了我自己的(++)运算符,现在我想进一步参考常规序言(++)。我如何实现这一目标?

2 个答案:

答案 0 :(得分:16)

import qualified Prelude

除了

import Prelude hiding ((++))

在代码的开头,并在Prelude中需要Prelude.++的地方写下++

答案 1 :(得分:4)

正如Tsuyoshi Ito所解释的,您可以通过其模块名称来限定运营商。但是,由于通过定义您自己的(++)版本,您很可能希望提高程序的可读性,因此稍后对运算符的模块名称进行限定似乎是一种奇怪的措施。

看看这个:"abc" Prelude.++ "def" 现在那是丑陋的。

为什么不简单地创建一个新的运算符,如<++>或像'append`这样的中缀函数?