Haskellで二項関数の両方の引数を何らかの変換によって「持ち上げる」最も慣用的な方法はどれですか? このオペレーターの名前を「リフト」にすると、タイプは次のようになると思います
lift :: (a -> b) -> (b -> b -> c) -> (a -> a -> c)
単純な定義は次のようになります
lift t f = \x y -> f (t x) (t y)
Haskellで二項関数の両方の引数を何らかの変換によって「持ち上げる」最も慣用的な方法はどれですか? このオペレーターの名前を「リフト」にすると、タイプは次のようになると思います
lift :: (a -> b) -> (b -> b -> c) -> (a -> a -> c)
単純な定義は次のようになります
lift t f = \x y -> f (t x) (t y)