4 ms·
Another way to think about this. When you and I are defining "plus" in this way, you may be thinking types (and how they are inferred and everything). I am simp
by wellpast 9y ago
Another way to think about this. When you and I are defining "plus" in this way, you may be thinking types (and how they are inferred and everything). I am simply saying I want "plus" semantics to be identical to "+"... If "+" is capable enough to add the String "one" and "two" together, I'll take it. If one of my users types in a roman numeral "I" and "+" yields wrong behavior (throws, or produces bad value), then I have to think about types. But maybe that never happens...
(I'm not saying this is how to code, but I'm clarifying that you don't have to think about types to get the semantics/precision. You just want to think about types, can't help thinking about types, or something else, you tell me.)
- tome 9y ago> When you and I are defining "plus" in this way, you may be thinking types 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.
- wellpast 9y agoI 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.
- tome 9y agoWhere did I specify types here? Prelude> myfun x y = x ^ 2 + 2 * y * x - y ^ 2 Prelude> myfun 3 6 9
- wellpast 9y agoThey 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 ^ 2
- tome 9y agoWhat does it mean to "concatenate two numbers together"?
- wellpast 9y ago55 % 102 would produce 55102 I made it up.
- tome 9y agoAnd 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!
- wellpast 9y agoI'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.