在Haskell中使用列表时,我只需将文件加载到 ghci 中,然后键入head list
或last list
即可获取所需的信息。但是,如果我有一个列表列表,可以说:list = [[1,2,3],[4,5,6]]
,如何获得第一个列表的第一个元素(头)(在这种情况下为1)或第二个列表的最后一个元素(在6),还有一个?
答案 0 :(得分:1)
有一个索引功能(!!),因此对于您的示例,请选择head。 (!! 0)和最后一个。 (!! 1)如果您的问题更笼统,请详细说明。索引不是很好,因为如果您尝试索引超出列表的末尾,可能会引发错误,因此通常我们会尝试解决此问题。通过说“好吧,我想对列表的每个元素执行相同的操作,这样我就不需要索引了”(映射函数)或“如果我确实需要索引,那么就不要直接使用它”)( zip [0 ..],或使用例如记录数据类型。
此外,如果您从未遇到过,Hoogle是您的朋友。如果您可以将功能分解为您认为可能很简单的简单功能,然后搜索其类型签名,通常这是一个不错的起点。 Hoogle [a] -> Int -> a
即使找不到您想要的东西,通常如果您找到类似的东西并浏览它的模块或源代码,也可以找到有用的东西。
答案 1 :(得分:1)
如果您只需要第一个或最后一个元素,concat
将为您平整列表。