Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 是否可以重写Collections.Seq模块中的值?_F# - Fatal编程技术网

F# 是否可以重写Collections.Seq模块中的值?

F# 是否可以重写Collections.Seq模块中的值?,f#,F#,我已经为我构建的集合实现了IEnumerable,并且(尽管我没有对它们进行全部测试)Seq值似乎工作正常。当我的集合的值的本机性能优于使用Seq的基于IEnumerable的函数时,是否可以覆盖某些Seq值,例如“last”?我没有找到有关重写Seq的任何信息。否--Seq模块中的函数不能被重写。但是,其中一些确实试图通过检查输入值来优化性能(不-seqNo-seq模块中的函数不能被重写。但是,一些确实试图通过检查输入值来优化性能(正如在另一个答案中所说的,seq无法覆盖seq模块中的函数。如

我已经为我构建的集合实现了IEnumerable,并且(尽管我没有对它们进行全部测试)Seq值似乎工作正常。当我的集合的值的本机性能优于使用Seq的基于IEnumerable的函数时,是否可以覆盖某些Seq值,例如“last”?我没有找到有关重写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以获得详细的答案。我认为答案是“否”,但如果我忽略了某些内容,则值得询问。感谢您提供的详细答案。我认为答案是“否”,但如果我忽略了某些内容,则值得询问。