3 ms·
This is one of the things I like about Haskell. Operators like (-) are just like any other function, so you're free to redefine them for new input. If you wan
by Periodic 17y ago
This is one of the things I like about Haskell. Operators like (-) are just like any other function, so you're free to redefine them for new input. If you want to define a world where 3 - 4 =5, you're free to do so. It makes it easy to explore some more complicated mathematical constructs.
- fserb 17y agoDo you care to elaborate on how '3-4=5' allows one to explore some more complicated mathematical constructs? Unless 'complicated' means 'ilogical' I cannot understand it. I think Haskell is a very nice language and it's flexibility on definitions is very cool, but I don't think this is a good example of it.
- bdr 17y ago3-4=5 in Z6, the modulo group with six elements. See http://en.wikipedia.org/wiki/Modular_arithmetic http://en.wikipedia.org/wiki/Modular_arithmetic
- fserb 17y agoBut you would never define it like this in Haskell... You'd probably do something like: let n - m = ( n + (-m) ) `mod` 6 'let 3 - 4 = 5' is just a non-sense example.
- ionfish 17y agoFor much the same reason, one would probably never want to write "let 1 = 1", but it's still a valid statement. It may not be interesting, but it's not nonsense.