f 和 g 的组成看起来像
f :. g = \a b -> f (g a) (g b)
是我在代码中经常发现的一种模式。它类似于一元函数组合,只是f
二进制,我想g
在两个参数传递给f
.
当我要求 lambdabot 将其转换为无点形式时,我得到了奇怪的咒语
flip ((.) . f . g) g
我宁愿在我的代码中没有它,所以我最终只是明确地写出模式。
是否有一种普遍接受的方式来为这种情况编写组合器?还是我很奇怪地发现自己经常处于这种情况?
我现在没有一个实际的例子来说明我什么时候使用它,因为我从来没有想过在我需要它的时候在这里问,但是可以想象用它非常巧妙地编写欧几里得距离公式,就像这样:
distance = sqrt . (+) :. (^2)