这是一个相当微不足道的问题,但快速的谷歌搜索并没有给我答案。
为序列编写递归函数的标准方法是什么?对于列表,您可以使用空列表和头+尾模式进行模式匹配,序列的等效项是什么?
没有标准的方法可以做到这一点,因为您很少为序列编写递归函数。
您应该查看各种高阶函数序列模块 http://msdn.microsoft.com/en-us/library/ee353635.aspx。它们通常已经足够了,因此您不必自己编写递归函数。
要递归生成序列,序列表达式是一种简单直观的方法:
let rec allFiles dir =
seq { yield! Directory.GetFiles dir
for d in Directory.GetDirectories dir do
yield! allFiles d }
如果您必须分解一个序列并递归地操作它,那么您就错了。你应该操纵List
or F# PowerPack 中的 LazyList http://fsharppowerpack.codeplex.com/SourceControl/changeset/view/68767#685030,并将结果转换回序列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)