【发布时间】:2011-09-07 13:58:36
【问题描述】:
嘿,我正在尝试学习一些 f# 基础知识,但我一直在磕磕绊绊。我想知道您将如何“替换”列表中的第一个元素。
任何帮助将不胜感激!
【问题讨论】:
-
你必须使用列表吗?这对于使用数组是很自然的。
嘿,我正在尝试学习一些 f# 基础知识,但我一直在磕磕绊绊。我想知道您将如何“替换”列表中的第一个元素。
任何帮助将不胜感激!
【问题讨论】:
这是一个通用功能。如果列表非空,它将用新值替换列表的头部,否则它将返回具有替换值的单个元素列表。
let replaceHead newHead list =
match list with
| _ :: tail -> newHead :: tail
| [] -> [newHead]
【讨论】:
let r h=function|_::t->h::t|[]->[h]
你可以'cons'(使用::-operator)新的第一个元素到原始列表的尾部(List.tail):
let theList = [1; 2; 3; 4]
let firstReplaced = 0 :: (List.tail a)
请注意,这将使原始列表 (theList) 保持不变。
【讨论】: