【发布时间】:2019-03-22 19:56:59
【问题描述】:
假设我想验证一个必须满足多个功能之一的输入。在 F# 中执行此操作的最佳方法是什么?这是我想出的一个小例子。
let funcs =
[
fun x -> x % 2 = 0
fun x -> x % 3 = 0
fun x -> x % 5 = 0
]
let oneWorks x = funcs |> List.tryFind (fun f -> f x = true) |> Option.isSome
oneWorks 2 //true
oneWorks 3 //true
oneWorks 5 //true
oneWorks 7 //false
【问题讨论】:
-
你所拥有的一切都很好,除了
= true位,这是多余的。 -
你也可以使用List.exists来简化它,然后你就可以避免使用Option.isSome了。
标签: .net f# functional-programming composition function-composition