PipeFirst
PipeFirst copied to clipboard
Fast pipe, pipe first as a syntax transform
Pipe First ppx 
Pipe first as a syntax transform. Transforms expressions containing the |. (Ocaml) or -> (Reason) operator.
Pipes the left side as first argument of the right side.
Reason
/* validateAge(getAge(parseData(person))) */
person
->parseData
->getAge
->validateAge;
/* Some(preprocess(name)); */
name->preprocess->Some;
/* f(a, ~b, ~c) */
a->f(~b, ~c)
Ocaml
(* validateAge (getAge (parseData person)) *)
person
|. parseData
|. getAge
|. validateAge
(* Some(preprocess name) *)
name |. preprocess |. Some;
(*f a ~b ~c *)
a |. f ~b ~c
Usage with Dune
dune file
(executable
(name hello_world)
(preprocess (pps ppx_pipe_first))
Reason: implementation of the hello_world.re file
let () =
1000
->string_of_int
->print_endline;
Ocaml: implementation of the hello_world.ml file
let () =
1000
|. string_of_int
|. print_endline
Developing:
npm install -g esy
git clone <this-repo>
esy install
esy build
Running Tests:
esy test