Where did I specify types here?
Prelude> myfun x y = x ^ 2 + 2 * y * x - y ^ 2
Prelude> myfun 3 6
9
Re:Clojure vs. The Static Typing World
by wellpast on Saturday October 28, 2017 @06:51PM
(#15577088)
They are specified in the definition of the operators. Define a new operator '%' that concatenates two numbers together and then show me how in Haskell you would do:
myfun x y = x ^ 2 % 2 * y * x - y ^ 2What does it mean to "concatenate two numbers together"?
55 % 102 would produce 55102
I made it up.And what does 55.1 % 102 produce? 1e-12 % 3i+12?
And if your answer is "I only need it to work on integers" then don't blame Haskell when I choose to specialise it to Int!
I'm a bad product manager. The % should round the value to a tenth and then concat.
This is a silly example, of course, but the real world isn't short on creativity/silliness.
And for complex numbers?
Precondition: complex numbers are not supported. Unspecified behavior.
If you're telling me you don't have to think about types, then you and I are on the same page.
But it sounds like we're talking Haskell here, so afaik, somewhere Haskell is going to ask you to specify types so that it can complete its type-proof (i.e., compile.)
If you're saying No, Haskell doesn't need that, then I'm afraid you have a dynamic language on your hands.