code: function on(f) {
      return function(g) {
        return function(x) {
          return function(y) {
            return f (g (x)) (g (y));
          };
        };
      };
    }
docs: # on :: (b -> b -> c) -> (a -> b) -> a -> a -> c . . Takes a binary function `f`, a unary function `g`, and two . values `x` and `y`. Returns `f (g (x)) (g (y))`. . . This is the P combinator from combinatory logic. . . ```javascript . > S.on (S.concat) (S.reverse) ([1, 2, 3]) ([4, 5, 6]) . [3, 2, 1, 6, 5, 4] . ```