首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从列表中获取第n个元素

从列表中获取第n个元素
EN

Stack Overflow用户
提问于 2015-01-26 00:20:25
回答 2查看 4.3K关注 0票数 1

这是一个非常简单的问题,但我只是不熟悉模式匹配和f#语法。

我正在尝试编写一个函数,它接受一个int和一个‘list’,并返回a类型的第n个元素。我在想这样的事情:

代码语言:javascript
运行
复制
let rec getn n xs=
  match n with
  0 -> {split xs into x::xs and then return x}
  _ -> {split xs into x::xs and call getn with n-1, xs}

有人能帮我处理一下语法吗?谢谢

EN

Stack Overflow用户

回答已采纳

发布于 2015-01-26 00:35:14

代码语言:javascript
运行
复制
let rec getn n xs =
    match n, xs with
      | 0, (x::_)   -> x
      | _, (_::xs') -> getn (n - 1) xs'
      | _, []       -> invalidArg "n" "n is too large"

不过,我认为if会比match更清楚:

代码语言:javascript
运行
复制
let rec getn n xs =
    if List.isEmpty xs then invalidArg "n" "n is too large"
    let x::xs' = xs in if n = 0 then x else getn (n - 1) xs'
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28143186

复制
相关文章

相似问题

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