Here's solution based on functional composition.
let mod10 = (%) >> (|>) 10
UPD Here was a wordy explanation, but programmers speak the code, so I guess the following will describe it much better, in a manner of mathematical proof.
The following expressions are equal:
let m1 x = x % 10
let m2 x = (%) x 10 // x (op) y = (op) x y
let m3 x = ((%) x) 10 // f x y = (f x) y
let m4 x = 10 |> ((%) x) // f x = x |> f
let m5 x = ((|>) 10) ((%) x) // x |> f = (|>) x f
let m6 x = ((%) x) |> ((|>) 10) // f x = x |> f
let m7 x = (x |> (%)) |> ((|>) 10) // (op) x = x |> (op)
let m8 x = x |> ((%) >> ((|>) 10)) // f(x) |> g = x |> (f >> g)
let m9 = (%) >> ((|>) 10) // remove formal argument
let m10 = (%) >> (|>) 10 // remove unnecessary parenthesis
Alternative syntax:
let mod10_2 = (|>) 10 << (%)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…