I am stuck behind a very simple exercise I just have to do x + y ^ sqrt z
with let
, but I tried:
let f x y z = x + y ^ sqrt z
but it doesn't work and complains about a type miss match when f
is used and with :t (f)
I get:
(f) :: (Integral b, Floating b, Num a) => a -> a -> b -> a
Can somebody explain or give an article which explains the (Integral b, Floating b, Num a)
part. What I know is Num a => a "1" -> a "2" -> a "3"
for f x y = x + y
x
has the type of a1
and y
has the type of a2
and the solution is a3
all of typeclass Num
which is used for (*), (+), (^), ...
.