获取列表中的列表元素

问题描述 投票:-1回答:2

在Haskell中使用列表时,我可以简单地将我的文件加载到ghci并输入head listlast list来获取我需要的信息。但是如果我有一个列表列表,让我们说:list = [[1,2,3],[4,5,6]],我如何得到第一个列表的第一个元素(头部)(在这种情况下为1),或者第二个列表的最后一个元素(在这种情况下,6) ),等等?

haskell
2个回答
1
投票

如果您需要的只是第一个或最后一个元素,concat将为您展平列表。


1
投票

有一个索引函数(!!),所以对于你的例子,head。 (!! 0)和最后。 (!! 1)。如果您的问题更为一般,请详细说明。索引不是很好,因为如果你试图索引超过列表的末尾它会抛出错误,所以通常我们会尝试解决这个问题,例如。通过说“好吧我想对列表的每个元素做同样的事情,所以我真的不需要索引”(地图功能)或“如果我确实需要索引然后不直接使用它”)( zip [0 ..],或使用例如记录数据类型)。

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

© www.soinside.com 2019 - 2024. All rights reserved.