[Haskell] Module

本文详细介绍了 Haskell 中模块的导入与导出机制,包括如何导入整个模块、部分函数或类型构造器,以及如何以限定名方式导入等。同时,也解释了模块导出的不同方式。

source: http://www.jianshu.com/p/0ac339f79001


1. 导入

(1)import Data.List
导入Data.List.*,但是不会导入子模块

(2)import Data.List (permutations, subsequence)
只导入Data.List模块中的permutationssubsequence

(3)import Data.List hiding (head, tail)
导入Data.List.*,除了headtail

(4)import Chapter3.ParamPoly (Client())
只导入类型,不导入值构造器

(5)import Chapter3.ParamPoly (Client(GovOrg,Individual))
导入类型,以及一部分值构造器

(6)import Chapter3.ParamPoly (Client(..))
导入类型,以及所有的值构造器

(7)import qualified Data.List (filter, permutations)
以带限定名的方式导入,使用方式为Data.List.filter

(8)import qualified Data.List as L
以带限定名的方式导入,并修改限定名,使用方式为L.filter
又例如,import qualified Data.List (permutations, subsequences) as L

2. 导出

(1)module M where
导出所有的type class,type,value

(2)module M (f) where
只导出f

(3)module Chapter2.DataTypes (ConnOptions(), connDefault) where
只导出ConnOptions类型,以及导出connDefault

注:
如果不导出值构造器,其他模块中如果用到值构造器产生编译错误


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值