Functional programming languages are expression - oriented rather than operator-oriented. This means that all of this is an expression that can be evaluated into a value.
The structures of the control flow if, and matchalso are valid expressions. The compiler checks that all branches of these expressions return the same type.
, F # if true then 1 else 0 true ? 1 : 0.
, "" . . ( n + 1) if/then/else.