Questions related to the parsing (and possibly the evaluation) of free-form mathematical expressions in strings, lists, or streams

This tag is for code that aims to parse (and possibly evaluate) strings, lists, or streams that represent mathematical expressions, such as

"1 + 1 / sqrt(x)"

Such expressions are typically meant to be interpreted according to the customary order of operations.

Questions that aim to parse (and possibly evaluate) expressions written using other conventions, such as Reverse Polish Notation…

1 1 x sqrt / +

can also fall under this tag.

This tag may also apply to programs that act very much like a handheld calculator, where the actions are directed by a sequence of operands and operators that is handled much like a free-form string would be. However, it should not be used for beginner-level programs like "Main Menu: Press 1 to add two numbers. Press 2 to subtract two numbers…", as such programs do not allow operations to be combined into more complex expressions.

Related tags include:

Please do not use this tag for code that casually uses arithmetic, but does not have a significant string-handling aspect. Also do not use this tag for programs that are merely strings to numbers, where the operations to be performed are fixed in code and not data-directed.

Avoid applying the tag to your question unless there is a significant mathematical challenge that might be of interest to a mathematician.

history | excerpt history