Haskell prelude泛型函数超出范围

Haskell prelude泛型函数超出范围,haskell,Haskell,当尝试使用Haskell prelude中所谓的“generic”列表函数时,我会遇到一个范围外错误——例如,尝试使用genericDrop、genericTake等 也许我需要导入一个模块或其他东西(但我在或通过谷歌搜索看不到这一点)是的,我相信您需要: import Data.List 通常,当我需要确定导入哪个模块时,我发现这非常有用。你可以搜索一个特定的函数,它会带你去hackage,然后在页面顶部会有该函数所属的模块。例如,以下是搜索和的结果 您可以在ghci中使用:浏览模块,查看模

当尝试使用Haskell prelude中所谓的“generic”列表函数时,我会遇到一个范围外错误——例如,尝试使用genericDrop、genericTake等


也许我需要导入一个模块或其他东西(但我在或通过谷歌搜索看不到这一点)

是的,我相信您需要:

import Data.List

通常,当我需要确定导入哪个模块时,我发现这非常有用。你可以搜索一个特定的函数,它会带你去hackage,然后在页面顶部会有该函数所属的模块。例如,以下是搜索和的结果

您可以在
ghci
中使用
:浏览模块
,查看模块公开的所有名称。要查看前奏曲中的内容(即您不需要导入的内容),您可以执行以下操作:
:浏览前奏曲
。这里有一个小小的误解:
genericDrop
genericTake
不在前奏曲中,这就是您需要导入它们的原因。是的,我想,因为前奏曲包含一些数据。列表等等,它将包括所有的itSo,数据中的一些函数。列表可以不导入就使用,但其他函数需要导入?是的,一些列表函数是通过prelude导入的。通常,如果需要列表函数,我会通过Data.list导入它们。我还更喜欢明确指定要导入的函数。例如,我将执行导入Data.List(genericDrop)
,它只导入一个函数。通过这种方式,很容易辨别事物的来源。好的,是的,你可以通过序曲来辨别哪些是进口的。。干杯