Re:Clojure vs. The Static Typing World
by wellpast on Saturday October 28, 2017 @03:20PM
(#15576372)
I was simply responding to Drup's "the fact that types are dynamic doesn't mean you don't have to think about them"...
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.
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.
Nope. No thinking in types required there.
> I am simply saying I want "plus" semantics to be identical to "+".
Yup. And that's exactly what the code that Drup pasted does.
> If "+" is capable enough to add the String "one" and "two" together
Yup. And that's exactly what the code that Drup pasted will do.