【问题标题】:Processing 2 List in F#在 F# 中处理 2 个列表
【发布时间】:2015-05-18 18:41:18
【问题描述】:

我有一些数据,像这样:

let id = [11;9;12];;
let student = [(9, "ann"); (10, "ben"); (11, "carl"); (12, "dave")];;

请帮我实现一个名为 getName 的函数
例如

> getName(id, student);;
- ["carl";"ann";"dave"]

【问题讨论】:

  • 您尝试过自己写getName 吗?你遇到了什么问题?
  • 修正了一些拼写并删除了不相关的谢谢。
  • 首先编写一个函数,它只接受一个id和学生列表,并返回带有那个id的名字。然后编写一个函数,对每个 id 使用第一个函数。 (您将在这两个函数中使用递归。)

标签: f# functional-programming


【解决方案1】:

如果您正在学习函数式编程,那么正确的方法是使用递归。但为了帮助您,您需要分享您尝试编写的代码。

在实践中,最简单的选择可能是使用 dict 函数将列表转换为字典,然后在字典中查找所有 ID:

let getStudents ids students = 
  let lookup = dict students
  ids |> List.map (fun id -> lookup.[id])

getStudents id student

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    相关资源
    最近更新 更多