问题标签 [expression-evaluation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
296 浏览

c++ - c++ 中 std::cout 的奇怪行为

为什么输出是“-1 5”?

PS:编译器是:

i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1(基于 Apple Inc. build 5658)(LLVM build 2336.11.00)

PS:编译没有任何优化。

0 投票
4 回答
193 浏览

algorithm - 布尔表达式中的求值函数和表达式

我知道我们如何在转换为波兰表示法后评估表达式。但是我想知道如何评估这样的事情:

a + b如果条件a < b为真,则发生,否则,如果a - b计算为假。

语法在这里不是问题。因为我只需要算法来解决这个问题。我能够评估布尔和代数表达式。但是我该如何解决上述问题呢?

0 投票
3 回答
1672 浏览

c++ - C++11 赋值表达式是从右到左求值的吗?

表达式的求值顺序一直是 C++ 中未指定行为的来源。C++11 标准是否最终说明了评估的顺序应该是什么?

我们现在是否知道以下表达式的var1和的值:var2

会是var1=30 and var2=30,还是var1=20 and var2=30

0 投票
3 回答
3334 浏览

c++ - 在 C++11 中的一个表达式中对同一变量进行双重赋值

C++11 标准(5.17, expr.ass) 指出

在所有情况下,赋值都在左右操作数的值计算之后和赋值表达式的值计算之前进行排序。对于不确定顺序的函数调用,复合赋值的操作是单次求值

据我了解,作为给定赋值一部分的所有表达式都将在赋值本身之前进行评估。即使我在同一个赋值中修改同一个变量两次,这条规则也应该起作用,我相当肯定,这在以前是未定义的行为。

将给定的代码:

总是评估为a==10?

0 投票
1 回答
667 浏览

evaluation - “顶级评价”是什么意思?

“顶级评价”是什么意思?

这个术语在它所提到的文本中没有定义。我不想告诉具体的上下文,因为我只对一般的解释感兴趣。

0 投票
3 回答
709 浏览

r - 为什么有时 R 不能区分 NA 和 0?

我正在尝试提取字段“var”等于0的数据行。

但我发现“NA”被视为0:

有 20 行 0 和 809 行“NA”。

数据框 d 共有 81291 行。

以上 829 值包括 0 和 "NA"

为什么上面的代码给出了 d 的长度?

0 投票
1 回答
3647 浏览

compiler-construction - 使用逆波兰表示法 (RPN) 进行算术表达式评估

数学表达式通常用中缀符号表示。出于评估目的,我们可以将其更改为后缀(反向抛光)表示法(使用Shutting-Yard等算法),然后使用堆栈评估后缀表示法。

我发现计算器使用了这种技术,但是今天的现代编译器是否使用它来进行算术表达式评估?它是否足够有效或正在使用其他技术(或算法)?

0 投票
2 回答
301 浏览

r - 评估函数调用的参数并将调用转换为 R 中的字符向量

我正在尝试编写一个函数,它将函数调用作为参数,评估此函数调用的数字参数,然后返回相应的字符向量。这就是我想出的:

现在,我希望在转换为字符向量之前对数字参数进行评估。因此 ConvertToCharacter(sum(2, a)) 将返回“sum(2, 1)”。我尝试将 env=parent.frame() 传递给替换,但它不起作用。知道我该怎么做吗?

谢谢!

0 投票
1 回答
436 浏览

c# - 将指数值替换为数学表达式中的两倍

我需要检查数学表达式是否包含指数值,然后用十进制值替换指数值。

输入:“10993.657030812325*8.20681165367255E-05”

输出:“10993.657030812325*0.0000820681165367255”

我面临的复杂性是在数学表达式中检测它。

检测我拥有的正则表达式的正则表达式是:

但是,对于整个表达式而言,这与 true 匹配,是否有直接的方法来解决这个问题,或者我是否必须将其分解并单独检查。

0 投票
3 回答
215 浏览

c# - 设计辅助:使用在运行时解析的表达式计算时间

我在数据库中有一些列包含HH:MM格式的时间。现在,如果有像11:00 - 12:00then 这样的简单表达式,我可以轻松地在 C# 中创建一个名为 as 的扩展方法,SubtractTime并在运行时传递我的参数。我将我的公式存储在数据库中,例如:

现在在上述情况下,我可以SubtractTime在运行时使用反射调用我的函数,但是我的问题是,如果我的表达式变得复杂,例如:

我如何解析这样的表达式?我不需要编码方面的帮助,因为我已经有了将时间转换为滴答声然后转换为HH:MM. 这更像是一个设计问题。我想要一个可扩展的解决方案,以便我可以有效地创建规则引擎。