首页 > 解决方案 > 获取列表中的列表元素

问题描述

在 Haskell 中使用列表时,我可以简单地将文件加载到ghci中并键入head listlast list获取我需要的信息。但是,如果我有一个列表列表,可以说:list = [[1,2,3],[4,5,6]],我怎样才能获得第一个列表的第一个元素(头)(在本例中为 1),或第二个列表的最后一个元素(在本例中为 6) ,所以一个?

标签: haskell

解决方案


有一个索引函数 (!!),因此对于您的示例, head 。(!!0) 和最后一个。(!!1)。如果您的问题更笼统,请详细说明。索引不是很好,因为如果您尝试在列表末尾进行索引,它可能会引发错误,所以通常我们会尝试解决这个问题,例如。通过说“好吧,我想对列表的每个元素做同样的事情,所以我真的不需要索引”(映射函数)或“如果我真的需要索引,那么不要直接使用它”)( zip [0..],或使用例如记录数据类型)。

此外,如果您以前没有见过 Hoogle,它就是您的朋友。如果您可以将您的函数分解为您认为可能是标准的简单函数,然后搜索它们的类型签名,这通常是一个不错的起点。Hoogle[a] -> Int -> a即使您没有找到您想要的东西,通常如果您找到类似的东西并浏览它的模块或源代码,您会发现一些有用的东西。


推荐阅读