f# - F#从两个列表中创建对列表
问题描述
我需要在 F# 中创建一个函数来将两个列表中的元素配对在一起(参见下图中的 (ii)):
我实际上并不完全确定问题在问什么:我是否需要创建一个需要两个列表的函数列出并返回一个对列表,其中结果列表中的第 i 个元素是一对,其中对中的第一个元素是第一个列表中的第 i 个元素,对中的第二个元素是第二个列表中的第 i 个元素?我不明白什么*
意思val pairlists :'a list * 'b list -> ('a * 'b)list
如果那是我应该做的,那么这就是我尝试过的:
let pairlists (l : 'a list) (m : 'b list) =
if l.Length <> m.Length then
failwith "the two lists does not have the same size"
else
[for i in 1 .. l.Length do
yield (l.Head,m.Head)
]
我不知道该怎么做,因为我不知道如何遍历列表?帮助
解决方案
函数签名中的*
表示输入是两个列表的元组,输出是元组列表。实现这一点的最简单方法是使用 List.zip 函数:
let pairlists ((a, b) : 'a list * 'b list) =
List.zip a b
在这里,我们将输入参数定义为 'a list 和 'b list 的元组,并将列表传递给List.zip : 'T1 list -> 'T2 list -> ('T1 * 'T2) list
相应的
推荐阅读
- unity3d - 脚本图标上的这个黑色小加号是什么?
- node.js - TypeScript 编译错误,导入带花括号的非默认接口
- javascript - 如何匹配所有以空格和字符开头的单词
- heroku - 没有找到时间 Heroku 的匹配分布
- ios - 如果我的 iOS 应用程序与使用 Core Bluetooth 的设备配对,其他应用程序是否可以访问该设备?
- java - gradle 无法获取 c3p0 依赖项
- mysql - QA 迁移到 Maria DB 后的 MYSQL,应用程序查询为列结果集元数据返回不同的情况
- node.js - 在 NodeJS 中使用 PDFMake 下载 PDF 失败
- python - 如何使用 while 循环中的键 PySimpleGUI 获取日历按钮的值?
- docker - Docker删除后拉取图像,除最后一层外的所有层都已存在