我想实现一个函数,f g a当它f g是 lambda 函数并且a是一个参数时作为输入。该功能应执行以下操作:
fun foo f g a = if (g a) then (f a) else a;
> val foo = fn : ('a -> 'a) -> ('a -> bool) -> 'a -> 'a
是否可以以某种方式替换if-else为andalso,orelse或其他方法?我想在不使用if-else语句的情况下实现一个函数。
编辑:寻找一种结合两个功能的方法,其中'a -> 'a一个是'a -> bool.