I'm quite new to Haskell and I'm writing a function that is similar to min instead of just accepting 2 values it'll accept 3. I've worked out the class as shown here:
min3 :: a -> a -> a -> a
However what would I put with the function itself after writing how many input variables?
min3 x y z =
This is probably stupidly easy and I'm missing something but if you could please help me out I would really appreciate it.
Thanks!
You can also write it as:
Another implementation:
And this could be easily generated to a function that can find the minimum in a list:
Data.List
gives a different implementation ofminimum
.One implementation
Notes:
Ord a => ...
because your arguments shall be ordable, i.e. themin
function has to be defined for them.@Lee provides a point free implementation which also can be written as
import Data.Composition ((.:))
Note:
f .: g
is a shortcut for(f .) . g
which is defined in Data.Composition