Haskell 什么是';合格';平均值为';导入符合条件的数据。列表';陈述
我理解导入数据。列表Haskell 什么是';合格';平均值为';导入符合条件的数据。列表';陈述,haskell,Haskell,我理解导入数据。列表 但是合格的在语句导入合格的数据.列表中是什么意思?合格的导入使导入的实体仅以合格的形式可用,例如 import qualified Data.List result :: [Int] result = Data.List.sort [3,1,2,4] 只需导入数据。列表,实体就可以以限定形式和非限定形式提供。通常,仅进行限定导入会导致名称过长,因此 import qualified Data.List as L result :: [Int] result = L.s
但是
合格的
在语句导入合格的数据.列表中是什么意思?合格的导入使导入的实体仅以合格的形式可用,例如
import qualified Data.List
result :: [Int]
result = Data.List.sort [3,1,2,4]
只需导入数据。列表
,实体就可以以限定形式和非限定形式提供。通常,仅进行限定导入会导致名称过长,因此
import qualified Data.List as L
result :: [Int]
result = L.sort [3,1,2,4]
合格导入允许使用从多个模块导入的同名函数,例如从
Prelude
导入的map
和从数据导入的map
。map
关键字qualified
表示导入模块中的符号不会导入到不合格(无前缀)命名空间中。它们只能使用其完整的限定名称。例如,foldr'
具有非限定名称foldr'
和限定名称Data.List.foldr'
一种是使用合格的导入来防止名称空间污染。也可以使用
import qualified Foo as Bar
,它从Foo
导入,但名称与导入源于Bar
一样。例如,如果键入import qualified Data.List as L
,则可以使用foldr'
asL.foldr'
,如果执行非限定导入(默认设置),则可以仅按名称引用导入的任何内容
如果执行限定的导入,则必须在名称前面加上从中导入的模块
例如:
这是不合格的进口货。您现在可以说sort
或Data.List.sort
import qualified Data.List (sort)
这是合格的进口货。现在,sort
本身不起作用,您必须说Data.List.sort
import qualified Data.List (sort)
因为这很长,通常你会说
import qualified Data.List (sort) as LS
现在您可以编写更短的LS.sort