gpt4 book ai didi

f# - 使用 F# 更加地道

转载 作者:行者123 更新时间:2023-12-02 05:49:46 25 4
gpt4 key购买 nike

我正在尝试做的一个非常简单的例子:我知道可以写:

let myFunc = anotherFunc

代替
let myFunc = fun x -> anotherFunc x

我有两个函数 fDate1, fDate2 - 都是 DateTime -> bool 类型。我需要构造一个函数,该函数接受一个日期并验证 fDate1、fDate2 中的任何一个是否返回 true。现在我发明了以下表达式:
let myDateFunc = fun x -> (fDate1 x) || (fDate2 x)

有没有更好的方法来做这些(例如使用“>>”或高阶函数)?

最佳答案

我认为您的代码没有任何不习惯的地方。在我看来,F# 的优点之一是您可以使用它来编写简单易懂的代码。从这个角度来看,没有什么比编写以下内容更简单的了:

let myDateFunc x = fDate1 x || fDate2 x

如果您的函数不止两个,那么编写如下内容可能更有意义:
let dateChecks = [ fDate1; fDate2 ]
let myDateFunc x = dateChecks |> Seq.exists (fun f -> f x)

但同样,这仅在您实际需要使用大量检查或经常添加检查时才有意义。不必要的抽象也是一件坏事。

关于f# - 使用 F# 更加地道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24079465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com