【问题标题】:F# replace first element in list?F#替换列表中的第一个元素?
【发布时间】:2011-09-07 13:58:36
【问题描述】:

嘿,我正在尝试学习一些 f# 基础知识,但我一直在磕磕绊绊。我想知道您将如何“替换”列表中的第一个元素。

任何帮助将不胜感激!

【问题讨论】:

  • 你必须使用列表吗?这对于使用数组是很自然的。

标签: list f# replace element


【解决方案1】:

这是一个通用功能。如果列表非空,它将用新值替换列表的头部,否则它将返回具有替换值的单个元素列表。

let replaceHead newHead list = 
  match list with
  | _ :: tail -> newHead :: tail
  | [] -> [newHead]

【讨论】:

  • 这并不能成为非常令人兴奋的高尔夫let r h=function|_::t->h::t|[]->[h]
  • @gradbot 我的高尔夫比赛很糟糕;)
【解决方案2】:

你可以'cons'(使用::-operator)新的第一个元素到原始列表的尾部(List.tail):

let theList = [1; 2; 3; 4]
let firstReplaced = 0 :: (List.tail a)

请注意,这将使原始列表 (theList) 保持不变。

【讨论】:

  • 谢谢!是的,我问了之后才知道,但不确定这是否是最干净的方法
猜你喜欢
  • 1970-01-01
  • 2019-06-27
  • 2020-01-10
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 2017-07-05
  • 1970-01-01
相关资源
最近更新 更多