题目:支持自定义函数的表达式计算.
编程语言:不限,推荐JavaScript.
题目描述:
1. 实现一个表达式运算的模块,该模块的输入为一个字符串格式的数学表达式,输出为字符串格式的运算结果。
2. 该数学表达式支持四则运算和括号,需要考虑运算符优先级。操作数为浮点数。例如,输入“(1+2.1)*3.5”,输出为“10.85”。
3. 该数学表达式支持自定义函数,并且支持用户扩展自定义函数。答题者可以自行设计自定义函数的接口和扩展方式,并且给出两个参考实现。 数学表达式中的自定义函数型为“func(p1, p2, …, pn)”。 假定用户实现了函数“ABS(p1)”用来对某个数求绝对值,那么输入“5*ABS(-2)”,输出应为“10”。 假定用户实现了函数“SUM(p1, p2, p3, p4)”用来对一系列数求和,那么输入“SUM(1,2,3,4)/4”,输出应为“2.5”。
1