如何计算嵌套列表中各元素长度并求每个子列表的长度最大值
嵌套列表操作实现方案
你要的效果可以通过嵌套map配合函数组合快速实现,不需要额外编写复杂逻辑:
获取子列表各元素长度的中间结果
对每个外层子列表单独执行map length,只需把内层的map length作为外层map的处理函数即可:
map (map length) [["f","bee","oba"],["aloo","d","e"],["xnx","y","z"]]
执行后返回目标中间结果:[[1,3,3],[4,1,1],[3,1,1]]
直接获取子列表最大长度的最终结果
不需要单独存储中间结果,用.组合map length和maximum两个函数作为外层map的处理函数即可,一行实现需求:
map (maximum . map length) [["f","bee","oba"],["aloo","d","e"],["xnx","y","z"]]
执行后直接返回最终结果:[3,4,3]
该写法的核心是把每个子列表的处理逻辑封装成独立函数传给外层map,嵌套场景下只要逐层处理对应层级的元素即可,可读性和简洁性都很高。
内容的提问来源于stack exchange,提问作者Wouter
相关产品推荐
相关产品推荐

