Если указать значение функции как:
let applyFirst f elements =
if Seq.isEmpty elements then None else elements |> Seq.head |> f
затем F # выводит тип f
как f: 'a -> b' option
. Это нормально, я понимаю, почему F # выводит f
возвращаемый тип как 'b option
. Но я хочу, чтобы f
было f: 'a -> 'b
, и это можно сделать, изменив applyFirst
function:
let applyFirst f elements =
if Seq.isEmpty elements then None else elements |> Seq.head |> f |> Some
Но интересно, есть ли более элегантный способ сделать это?