F#中序列的递归函数 [英] Recursive functions for sequences in F#

查看:24
本文介绍了F#中序列的递归函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题很琐碎,但在谷歌上快速搜索一下并没有给出答案。

编写序列递归函数的标准方法是什么?对于列表,您将使用空列表和头部+尾部模式进行模式匹配,序列的等价物是什么?

推荐答案

没有标准方法,因为您很少为序列编写递归函数。

您应该了解Seq module中的各种高阶函数。它们通常绰绰有余,因此您不必自己编写递归函数。

要递归生成序列,序列表达式是一种简单直观的方法:

let rec allFiles dir =
    seq { yield! Directory.GetFiles dir
          for d in Directory.GetDirectories dir do
            yield! allFiles d }

如果您必须分解一个序列并递归操作它,那么您就做错了。您应该操作ListLazyList from F# PowerPack,然后将结果转换回序列。

这篇关于F#中序列的递归函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆