haskell - 获取列表中的列表元素
问题描述
在 Haskell 中使用列表时,我可以简单地将文件加载到ghci中并键入head list
或last list
获取我需要的信息。但是,如果我有一个列表列表,可以说:list = [[1,2,3],[4,5,6]]
,我怎样才能获得第一个列表的第一个元素(头)(在本例中为 1),或第二个列表的最后一个元素(在本例中为 6) ,所以一个?
解决方案
有一个索引函数 (!!),因此对于您的示例, head 。(!!0) 和最后一个。(!!1)。如果您的问题更笼统,请详细说明。索引不是很好,因为如果您尝试在列表末尾进行索引,它可能会引发错误,所以通常我们会尝试解决这个问题,例如。通过说“好吧,我想对列表的每个元素做同样的事情,所以我真的不需要索引”(映射函数)或“如果我真的需要索引,那么不要直接使用它”)( zip [0..],或使用例如记录数据类型)。
此外,如果您以前没有见过 Hoogle,它就是您的朋友。如果您可以将您的函数分解为您认为可能是标准的简单函数,然后搜索它们的类型签名,这通常是一个不错的起点。Hoogle[a] -> Int -> a
即使您没有找到您想要的东西,通常如果您找到类似的东西并浏览它的模块或源代码,您会发现一些有用的东西。
推荐阅读
- javascript - jQuery从目录中获取json文件
- c# - 如何从委托创建 IObservable?
- atom-editor - 如何解决在 Atom 中运行脚本的问题?
- matlab - 如何在MATLAB中的fft之后“标准化”(?)一个向量?
- reactjs - 使用 Jest + Enzyme 测试有状态类组件时,Material-UI 的 withStyles 会导致问题
- r - 如何知道变量对 R lme4 模型中的模型是否具有统计意义?
- java - 如何从字符串中提取名字、中间名和姓氏。以及在没有输入中间名时如何识别
- javascript - 了解如何更改 SVG
- sql - 选择具有一个 unique_id 和第二个 unique_id 不同 ORACLE 的重复行
- sql-server - 如何根据字段条件对结果进行 SQL PIVOT 格式化?