Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 什么是';合格';平均值为';导入符合条件的数据。列表';陈述_Haskell - Fatal编程技术网

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'
as
L.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