Re:Problems of Traditional Math Notation (2004)
by contravariant on Monday November 06, 2017 @09:59AM
(#15635880)
The main difference between math and programming languages is that it's perfectly fine in math to define l-values.
For example i^2 = -1 is the generally accepted definition of the imaginary unit.
Re:Problems of Traditional Math Notation (2004)
by theoh on Monday November 06, 2017 @11:39AM
(#15636643)
It's r-values that cannot be assigned to. What's really missing from most conventional math, I think, is the notion of conditional expressions based on equality testing. "=" is usually only used in a declarative way, to declare that two expressions are equal.
See n+k patterns in Haskell for a programming exception to the rule you mention.
Re:Problems of Traditional Math Notation (2004)
by theoh on Monday November 06, 2017 @01:54PM
(#15637841)
Actually, though, set-builder notation can use the equals sign to express a condition. e.g. the examples here https://en.wikipedia.org/wiki/Set-builder_notation. Maybe there are other examples in math.
In CS we talk about l-values and r-values. Only an l-value can be assigned to, but you can compare r-values for equality. So there is a solid distinction there between types of expression which is upheld in programming languages.