Functional programming 如何将故障从内部功能推迟到外部功能

Functional programming 如何将故障从内部功能推迟到外部功能,functional-programming,language-agnostic,optional,maybe,Functional Programming,Language Agnostic,Optional,Maybe,我有一个函数g:(T->Double)->T,它需要一个函数f:T->Double 但是,我没有一个t->Double。我有一个可能失败的函数f_err:T->可能是Double。我不能修改g本身,但是有没有办法在g中使用f_err(或者g的一些包装器),这样当f_err成功时,将f_err与g一起使用f_err会导致只是t,而当f_err失败时,你得到的是Nothing-基本上是将可能推迟到最终结果,而不是f_err的中间结果?你是否可以修改g来使用函子或其他东西?@用户你能举个例子吗?我不知

我有一个函数
g:(T->Double)->T
,它需要一个函数
f:T->Double


但是,我没有一个
t->Double
。我有一个可能失败的函数
f_err:T->可能是Double
。我不能修改
g
本身,但是有没有办法在
g
中使用
f_err
(或者
g
的一些包装器),这样当
f_err
成功时,将
f_err
g
一起使用
f_err
会导致
只是t
,而当
f_err
失败时,你得到的是
Nothing
-基本上是将
可能
推迟到最终结果,而不是
f_err
的中间结果?

你是否可以修改
g
来使用函子或其他东西?@用户你能举个例子吗?我不知道
g
是什么样子,但是如果它是这样的,那么你可以把它变成这样的东西。(请原谅我在这里犯的任何错误,我不是Haskell程序员)您可以修改
g
来使用函子或其他东西吗?@user您能举个例子吗?嗯,我不知道
g
看起来像什么,但如果是这样的
gf=h(f some\u t)
,然后,您可以将其转换为类似于
gf=fmap h(f some\u t)
的内容。(请原谅我在这里犯的任何错误,我不是Haskell程序员)