条件表达式的评估
Evaluation of conditional expressions
我正在尝试编写一种递归算法来计算以下类型的表达式:operator
variable
和返回true/false
的函数。
[A] = [B] - [c]
functionA(1,2) = functionB(3,4,5)
functionA(functionC(a,b)) = functionB(3,4,5)
问题是我不知道如何开始和使用什么方法。我可以使用堆栈或任何东西。
我正在尝试在Javascript中执行此操作。
欢迎任何逻辑/想法。
也许您正在寻找这个,一个函数集合和一个基于堆栈的 RPN 样式命令迭代。
在输出中,您可以看到实际的命令和堆栈。
var $ = {
'===': function (b) { return function (a) { return a === b; }; },
'+': function (b) { return function (a) { return a + b; }; },
'-': function (b) { return function (a) { return a - b; }; },
'1/x': function (a) { return 1 / a; },
},
commands = [3, 2, '+', 9, 4, '-', '==='],
result = commands.reduce(function (stack, command) {
var temp;
if ($[command]) {
temp = $[command];
while (typeof temp === 'function') {
temp = temp(stack.pop());
}
stack.push(temp);
} else {
stack.push(command);
}
document.write('<pre>' + command + ': ' + JSON.stringify(stack, 0, 4) + '</pre>');
return stack;
}, [])[0];
document.write(result);
相关文章:
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript-在一行中评估多个正则表达式
- 在JavaScript中评估复杂的数学表达式
- 我可以在对象上下文中评估表达式吗?
- Webpack:是否可以在编译时评估javascript表达式
- AngularJs针对多个条件评估表达式
- 评估JavaScript中给出布尔表达式的字符串
- 在 NodeJS repl 中逐个表达式地评估 Javascript 文件
- JS与C++表达式评估
- 条件表达式的评估
- JavaScript 评估,用于在某种隔离环境中的表达式
- Birt报告引擎.评估Javascript表达式时出错
- 正在评估AngularJS ng-show指令中的表达式
- 正在评估JavaScript代码中的Elisp表达式
- 正在Chrome中评估xpath表达式
- 如何评估JavaScript表达式
- 在winrt/xaml/c#应用程序中动态评估javascript表达式
- AngularJS在评估正则表达式ng模式时出现问题
- 如何在对象上保持表达式's参数,以便重新评估
- 为什么悬停在Chrome调试器实际上修改变量,而不是评估表达式