# [eeps] Proposal for /\ and \/ operators

Raimo Niskanen <>
Thu Feb 26 10:35:58 CET 2009

```On Thu, Feb 26, 2009 at 12:45:42PM +1300, Richard O'Keefe wrote:
> I'm sick of writing my own max and min functions.
> Aren't you?
>

Yes me too...

:
>
> Specification
>
>     Currently the Erlang language has no built-in support for
>     the maximum and minimum operations.  So we add
>
>     /\  with the same precedence and associativity as band
>     \/  with the same precedence and associativity as bor
>
>     E1 /\ E2 has the same effects and value as
> 	(T1 = E1, T2 = E2, if T1 > T2 -> T2 ; true -> T1 end)
>     E1 \/ E2 has the same effects and value as
> 	(T1 = E1, T2 = E2, if T1 > T2 -> T1 ; true -> T2 end)

Can you explain to a non-mathematician (me) why you have defined
(E1 /\ E2) as min(E1, E2) and
(E1 \/ E2) as max(E1, E2). To me it seems counterintuitive
since /\ looks like a mountain hence max
and \/ looks like a valley hence min.
And I do not want to fully understand Lattice theory
to understand which operator is which. I am a simple programmer.

Since (1.0 == 1) and (1.0 >= 1) and (1 >= 1.0),
could you also for /\ and \/ elaborate on
max(A, B) when A >= B -> A;
max(A, B) -> B.
vs
max(A, B) when A > B -> A;
max(A, B) -> B.
Which may be most useful in the light of operator
precedence and binding?

--

/ Raimo Niskanen, Erlang/OTP, Ericsson AB

```