首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换列表haskell

转换列表haskell
EN

Stack Overflow用户
提问于 2018-04-02 20:11:36
回答 1查看 76关注 0票数 0

我有这个列表(Integer,Integer),我想转换成这个列表(Integer,Integer)。

根据我所读到的,我应该使用像map这样的高阶函数。

代码语言:javascript
复制
alterList :: ([Integer],[Integer]) -> [(Integer,Integer)]
alterList a = map(\a -> .....?)

有指引吗?这两个列表都是相同大小的。

就像我有两个列表(1,2,3,4,5,6,7,9),我想转换成(1,5),(2,6),(3,7),(4,8)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-02 21:16:53

所以在你更正了你的帖子后,我想你想

代码语言:javascript
复制
alterList :: ([Integer],[Integer]) -> [(Integer,Integer)]
alterList (l1, l2) = zip l1 l2

示例:

代码语言:javascript
复制
>>> alterList ([1,2,3,4],[5,6,7,9])
[(1,5),(2,6),(3,7),(4,9)]

这相当于

代码语言:javascript
复制
alterList' :: ([Integer],[Integer]) -> [(Integer,Integer)]
alterList' = uncurry zip

注意,即使这两个列表的大小不同,这个函数也能工作:在这种情况下,它的作用就好像最长的列表被截断到最短的列表的长度一样。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49618128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档