Скажем, я хочу проверить ввод, который должен удовлетворять одной из ряда функций.Каков наилучший способ сделать это в 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
Как говорится в комментариях, то, что у вас будет, будет работать нормально.
Однако я бы упростил это до:
let any x = funcs |> Seq.exists (fun f -> f x) any 2 //true any 3 //true any 5 //true any 7 //false