programming_languages/sml/week2/operators.sml

21 lines
400 B
Standard ML
Raw Permalink Normal View History

2020-06-04 03:02:24 +03:00
(*
Pipe operator.
Simply to write code like "data |> fun" instead "fun data".
Then you can "pipe" results to functions via partial application:
fun square a b = a * b
fun sum a b = a + b
10 |> sum 10 |> square 2 // 40
*)
fun |> (x, f) = f x
(* apply operator *)
fun $ (f, x) = f x
(* composition operator *)
fun >> (f, g) x = g(f(x))
infix |>
infix $
infix >>