Haskell链函数基于不同的条件

use*_*349 3 haskell function chain

当链接函数应用于一个参数时,是否有一种有效/简单的方法,只应用满足其要求的函数才能应用?例如:

我有1个参数'Obj'和3个函数:func1,func2,func3.每个都有自己的要求,需要满足这些要求,以便将函数应用于参数.例如伪代码:

(if condition1 then func1) . (if condition2 then func2) . (if condition3 then func3) Obj
Run Code Online (Sandbox Code Playgroud)

因此,如果所有条件都合格,则所有3个函数都将应用于Obj.

有什么方法可以做到这一点吗?

Jon*_*ast 7

首先,你有失踪$之前Obj.我想在回答你的问题时,你只需要提供一个else条款:

(if c0 then f0 else id) $ (if c1 then f1 else id) $ (if c2 then f2 else id) $ arg
Run Code Online (Sandbox Code Playgroud)