DEV Community

Discussion on: Day 3: From string to math

Collapse
nickholmesde profile image
Nick Holmes

Nice solution to the problem, but you can simplify. Addition is associative, e.g.

a+(b+c) = (a+b)+c = a+b+c

(Subtraction is trivially changed to addition 2 - 1 = 2 + -1. I see you have understood this).

As the parenthesis don't do anything, you can just ignore them. (I would set up a range a characters to ignore, and add whitespace to it as well)

I've got to go to a meeting now, but I'll post an F# version later - might be able to get it down to a single expression.

Collapse
citizen428 profile image
Michael Kohl

Subtraction is not associative:

(3 - 2) - 1 #=> 0
3 - (2 - 1) #=> 2

Rewriting that to addition does not help:

(3 + -2) + -1 #=> 0
3 + -(2 + -1) #=> 2

Collapse
nickholmesde profile image
Nick Holmes

Indeed. :-(