F# 是否可以重写Collections.Seq模块中的值?
我已经为我构建的集合实现了IEnumerable,并且(尽管我没有对它们进行全部测试)Seq值似乎工作正常。当我的集合的值的本机性能优于使用Seq的基于IEnumerable的函数时,是否可以覆盖某些Seq值,例如“last”?我没有找到有关重写Seq的任何信息。否--F# 是否可以重写Collections.Seq模块中的值?,f#,F#,我已经为我构建的集合实现了IEnumerable,并且(尽管我没有对它们进行全部测试)Seq值似乎工作正常。当我的集合的值的本机性能优于使用Seq的基于IEnumerable的函数时,是否可以覆盖某些Seq值,例如“last”?我没有找到有关重写Seq的任何信息。否--Seq模块中的函数不能被重写。但是,其中一些确实试图通过检查输入值来优化性能(不-seqNo-seq模块中的函数不能被重写。但是,一些确实试图通过检查输入值来优化性能(正如在另一个答案中所说的,seq无法覆盖seq模块中的函数。如
Seq
模块中的函数不能被重写。但是,其中一些确实试图通过检查输入值来优化性能(不-seqNo-seq
模块中的函数不能被重写。但是,一些确实试图通过检查输入值来优化性能(正如在另一个答案中所说的,seq无法覆盖seq
模块中的函数。如果要实现自定义集合,那么最好遵循核心F#库使用的标准模式
Seq
模块包含最常用的功能和可合理提供给任何序列的功能
- 像
Array
或List
这样的模块为特定集合类型提供了更高效的实现,并且它们添加了更多特定于集合的函数(例如,函数List.tail
和Array.get
)
添加自己的收藏时,最好的方法是遵循以下模式:
- 实现
IEnumerable正如在另一个答案中所说,您无法覆盖Seq
模块中的函数。如果您要实现自定义集合,那么最好的做法是遵循核心F#库使用的标准模式
Seq
模块包含最常用的功能和可合理提供给任何序列的功能
- 像
Array
或List
这样的模块为特定集合类型提供了更高效的实现,并且它们添加了更多特定于集合的函数(例如,函数List.tail
和Array.get
)
添加自己的收藏时,最好的方法是遵循以下模式:
- 实施
IEnumerableThanks以获得详细的答案。我认为答案是“否”,但如果我忽略了某些内容,则值得询问。感谢您提供的详细答案。我认为答案是“否”,但如果我忽略了某些内容,则值得询问。