相关疑难解决方法(0)

方便的F#片段

关于F#/功能片段已经存在两个 问题.

然而,我在这里寻找的是有用的片段,可重复使用的小"帮助"功能.或者模糊但又漂亮的模式,你永远不会记得.

就像是:

open System.IO

let rec visitor dir filter= 
    seq { yield! Directory.GetFiles(dir, filter)
          for subdir in Directory.GetDirectories(dir) do 
              yield! visitor subdir filter} 
Run Code Online (Sandbox Code Playgroud)

我想把它作为一个方便的参考页面.因此,没有正确的答案,但希望有很多好的答案.

EDIT Tomas Petricek专门为F#片段创建了一个网站http://fssnip.net/.

f# reference code-snippets

66
推荐指数
15
解决办法
1万
查看次数

获取序列的每个第n个元素

我正在寻找一种方法来创建一个由另一个序列的每个第n个元素组成的序列,但似乎没有找到一种方法以优雅的方式做到这一点.我当然可以破解某些东西,但我想知道是否有一个我没有看到的库函数.

名称以-i结尾的序列函数似乎非常适合于确定元素何时是第n个或第n个(第n个的多个),但我只能看到,iteri并且mapi没有一个真正适合于任务.

例:

let someseq = [1;2;3;4;5;6]
let partial = Seq.magicfunction 3 someseq
Run Code Online (Sandbox Code Playgroud)

partial应该是[3;6].那里有什么类似的东西吗?

编辑:

如果我不是那么雄心勃勃并且允许n不变/已知,那么我刚刚发现以下内容应该有效:

let rec thirds lst =
    match lst with
    | _::_::x::t -> x::thirds t // corrected after Tomas' comment
    | _ -> []
Run Code Online (Sandbox Code Playgroud)

有没有办法写这个更短?

f#

7
推荐指数
2
解决办法
2541
查看次数

标签 统计

f# ×2

code-snippets ×1

reference ×1