Трудно объяснить, вот что я хочу:
let internal (=%=) (W : int, thriller : Dev -> unit -> bool) =
let id = get W
if id <> -1 then
workbase.[id] |> thriller
Это не позволяет моему триллеру возвращать любой тип.
Так что я могу сделать W =%= fun w -> foo()
где foo()
- это unit
Но как мне сделать W =%= fun w -> foo()
, где foo()
- это unit -> T'
(некоторый тип)?
спасибо
только что добавил окончательное использование (потому что оно нравится):
let CanRead W dev v = W =%= fun w -> w.GetCanRead dev v
|> fun opt -> if opt.IsSome then opt.Value
else false
после комментария:
let CanRead W dev v = match W =%= fun w -> w.GetCanRead dev v with
| Some(t) -> t
| None -> false