Na minha prática de programação em OCaml, descobri recentemente que o seguinte operador de pipeline é muito útil para criar funções.
let (>|) f g x = g (f x)
val ( >| ) : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c = <fun>
Eu o uso para substituir códigos como:
fun s -> int_of_string s |> Int.hash
- : string -> int = <fun>
Pelo mais simples:
int_of_string >| Int.hash
- : string -> int = <fun>
A associatividade funciona bem:
int_of_string >| float_of_int >| string_of_float
- : string -> string = <fun>
Isso seria uma melhoria valiosa da linguagem principal e, se sim, como enviar essa contribuição?