49得票4回答
在C++中,浮点数加法是可交换的吗?

对于浮点数而言, a + b 等价于1 b + a 是否是有保证的? 我相信在IEEE754中这是有保证的,但C++标准并没有规定必须使用IEEE754。唯一相关的文本似乎来自[expr.add]#3: 二元+运算符的结果是操作数的总和。 数学运算“总和”是可交换的。然而,数学运算“总和”...

24得票3回答
放宽单子计算中的顺序约束

以下是一些值得思考的内容。 当我编写单子代码时,单子会对所执行的操作进行排序。例如,如果我在IO单子中编写:do a <- doSomething b <- doSomethingElse return (a + b) 我知道doSomething会在doSometh...

22得票4回答
3等于号或案例相等运算符

在Ruby中,Integer === 5返回true。同样地,String === "karthik"也返回true。 然而,5 === Integer却返回false,"karthik" === String也是如此。 为什么这个运算符不是交换律的呢?

21得票2回答
Nullable<T>的'=='的参数顺序

以下两个 C# 函数仅在交换参数的左/右顺序时使用 equals 运算符 == 有所不同。(IsInitialized 的类型为 bool)。使用 C# 7.1 和 .NET 4.7。 static void A(ISupportInitialize x) { if ((x as I...

18得票2回答
Babel插件运行顺序

TL;DR: 如何指定 Babel 插件运行的顺序?Babel 如何确定插件的顺序?除了查看 Babel 源代码,还有没有规范说明它的工作原理? 我正在开发自己的 Babel 插件。我注意到,当我运行它时,我的插件会在其他 es2015 插件之前运行。例如,有以下代码: const a =...

18得票2回答
我如何确定一个单子是否是可交换的?

Control.Monad.List.ListT 的文档说明:“除非参数单子循环,否则不会产生单子。” 如何确定单子是否具有交换性? 是否有 CommmutativeMonad 类型类? 是否应该有? 特别地,Control.Monad.RWS.Lazy.RWS 是一种可交换的单子吗?

12得票2回答
Haskell 运算符的交换律?

有没有一种方法可以说明一个运算符是可交换的,这样我就不必为两个方向都给出相同的定义了吗?例如:data Nat = Zero | Succ Nat (+) :: Nat -&gt; Nat -&gt; Nat Zero + x = x x + Zero = x ... 这里,是否有一种方法可...

11得票2回答
将NA和评估为NaN的表达式相加,根据顺序会返回不同的结果,违反了交换律?

我正在调查R中数字运算的边角案例。我遇到了以下特殊情况,涉及零除以零:(0/0)+NA #&gt; [1] NaN NA+(0/0) #&gt; [1] NA 本文档由reprex软件包(v2.0.0)于2021-07-10创建sessionInfo() #&gt; R version 4.1...

10得票4回答
如何在类型类中指定两个操作可交换?

我开始阅读这篇关于CRDT的论文,它是一种通过确保修改数据的操作可交换来同时共享可修改数据的方法。在我看来,这将成为Haskell中抽象的好选择-提供一个CRDTs类型类,指定可交换的数据类型和操作,然后努力制作库以在并发进程之间实际共享更新。 我无法确定如何在类型类的规范中表达操作必须可交...

9得票3回答
两个不同对象的可交换运算符重载+

我有两个类代表一个矩阵: 1. RegularMatrix - O(n^2) 表示 2. SparseMatrix - 一个用链表表示的矩阵(没有零元素)。 假设我有: RegularMatrix a; SparseMatrix b; 我希望能够做到以下几点: a+b; and ...