9得票5回答
如果Python乘法表达式遇到零会更快地进行评估吗?

假设我有一个包含许多乘数(小表达式)的乘法表达式。 expression = a*b*c*d*....*w 例如,其中c为(x-1),d为(y**2-16),k为(xy-60)..... x、y为数字 我知道c、d、k、j可能是零 我写表达式的顺序是否会影响更快的计算? 是将cdk...

7得票1回答
C++:用户自定义逗号运算符的求值顺序是什么?

我正在阅读Nicolai Josuttis写的《C++17完全指南》,看到了以下表达式: foo(arg1), (foo(arg2), foo(arg3)); 作者声称内置逗号运算符的评估顺序将从左到右,但可以通过重载它们来更改。然而,我在cppreference上看到了“评估顺序”文章...

17得票5回答
在C语言中,评估赋值运算符的左操作数有什么意义?

根据ISO C11 - 6.5.16.3规范,它表示: 赋值运算符将一个值存储在左操作数指定的对象中。赋值表达式具有赋值后左操作数的值,但不是lvalue。赋值表达式的类型是左操作数在lvalue转换后的类型。更新左操作数存储的值的副作用在左右操作数的值计算之后被排序。操作数的评...

323得票10回答
ArrayList的contains()方法如何评估对象?

如果我创建一个对象并将其添加到我的ArrayList中。 如果我使用完全相同的构造函数输入创建另一个对象,那么contains()方法会将这两个对象评估为相同吗? 假设构造函数不对输入进行任何有趣的处理,并且存储在两个对象中的变量是相同的。ArrayList<Thing> bask...

19得票3回答
使用GHC API评估Haskell语句/表达式

我正在编写一个工具(http://hackage.haskell.org/package/explore),需要一种在运行时读取Haskell函数定义、将它们应用到我工具中的值并检索它们应用结果的方法。 有没有人能够提供一个使用GHC(6.10.4或6.12.1)API的非常基本的示例呢?...

11得票3回答
Scala中的按名称传递与Haskell中的惰性求值有何区别?

Haskell的惰性求值永远不会比急切求值需要更多的求值步骤。 另一方面,Scala的按名称调用(call-by-name)可能需要比按值调用(call-by-value)更多的求值步骤(如果短路利益被重复计算所抵消)。 我之前认为按名称调用与惰性求值大致相等。那么为什么时间保证存在这样的...

16得票2回答
Perl6搜索然后用子程序的输出替换

我已经查阅了文档,但似乎找不到如何在Perl6中实现这个功能。 在Perl5中,我会这样做(只是一个例子):sub func { ... } $str =~ s/needle/func($1)/e; 即用调用'func'的输出替换'needle'。

9得票1回答
为什么在GHCi中“data Unit = Unit”和“()”的行为不同?

在GHCi中:(>表示输出) data Unit = Unit let x = Unit let y = () :p x > x = (_t1::Unit) :p y > y = () :i () > data () = () -- Defined in `GH...

7得票4回答
使用 "new Function(...)" 进行安全考虑(在渲染时,表达式来自我的Javascript源)

我希望使用new Function(...)从极简代码中生成一个函数。我想这样做是为了: 避免自己解析表达式并且 尽可能的灵活。 我尽可能避免使用eval(),但我不确定是否安全使用new Function(...),因为它也被认为存在安全漏洞。 背景 我想管理菜单按钮的状态。所以...

11得票1回答
如何在编译期强制计算常表达式?

几天前我询问编译器根据哪些标准来决定是否在编译时计算constexpr函数。 正如所发现的那样,只有当所有参数都是常量表达式,您要分配的变量也是常量表达式时,constexpr才会在编译时计算。 参考链接:When does a constexpr function get evalua...