[Haskell] Module

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容