gpt4 book ai didi

f# - 在 F# 序列开头添加元素的更好方法

转载 作者:行者123 更新时间:2023-12-04 03:59:47 24 4
gpt4 key购买 nike

F# List提供 cons ( :: ) 运算符在列表的前面添加一个项目。是否有一个函数可以为 Seq 做同样的事情? ?我遇到的唯一方法是使用 Seq.append如下。有没有更有效/优雅的方式来做到这一点?

> let myLst = [1..5]
> 0::myLst;;
val it : int list = [0; 1; 2; 3; 4; 5]


> let mySeq = {1..5}
> Seq.append (seq [0]) mySeq;;
val it : seq<int> = seq [0; 1; 2; 3; ...]

可能重复,但没有真正回答我的问题。

[1]用途 Seq.append如上

最佳答案

回想一下 F# 序列确实是一种计算可能会有所帮助。不管你打算如何实现它,最终你应该有一个新的计算,如果被枚举,首先产生附加元素,然后产生旧序列。在最直接的形式中,这可以使用 a sequence expression 来实现。 :

> let mySeq = {1..5}
> seq { yield 0; yield! mySeq };;
val it : seq<int> = seq [0; 1; 2; 3; ...]
Seq.append库函数只是语义上相同 Action 的优化实现。

关于f# - 在 F# 序列开头添加元素的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9774398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com