问题标签 [variance]
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.
prolog - 计算序言中的方差
我在 Prolog 中做了一个函数:-
出于某种原因,当我尝试计算方差时,它总是这样回答“假”:variance([1,2,3],2,VO) 或 statsList([1,2,3],M,VO)
但是,如果我仅使用它来测试它是否有效:
有人可以告诉我哪里出错了吗?
scala - 除了输入/输出参数之外,类型方差的其他用途是什么?
我的理解是在以下情况下使用类型差异:
如果泛型类型
G
具有类型参数T1
,它作为G
方法的参数的类型出现,则G
可以在 中是逆变的T1
。如果
G
有类型参数T2
,它显示为 的方法(或 ctor)的任何返回值的类型G
,则G
可以在 中是协变的T2
。
如果我在上面的句子中替换can be with should be怎么办?还有其他使用协变和反变的情况吗?你什么时候以及为什么要让你的类型是协变和反变的?
matlab - [0,1] MATLAB 上均匀分布的均值方差
Matlab中获得均匀分布的均值和方差的最佳方法是什么[0,1]
?
scala - 路径依赖类型的方差技巧
这是隐式和路径相关类型的另一个。我不明白为什么我需要在这里如此冗长:(注意——我找到了答案,见下文)
第一次尝试:
第二次尝试:
第三次尝试:
statistics - 使用 Fortran 正确查找标准差和总体方差的问题
当我在 fortran 95 上搜索标准偏差和总体方差时,我找不到太多东西。所以我想知道是否有人可以帮助我?谢谢你的时间。
这是我所做的,它编译得很好,但结果却给出了错误的值:
scala - 对方差感到困惑
鉴于以下情况:
由于 Crate 是不变的,我不能执行以下操作(如预期的那样):
但是,当 Crate 不是协变的时,为什么我可以用这些调用方法 p?:
我是否错过了一些基本的方差原则?
scala - 带排序的参数化方法?
现在我很困惑。我对 Scala 很陌生,已经使用了几个星期,我想我已经熟悉它了,但是我被困在下面这个看似微不足道的案例中。
我找不到与此 Java 声明等效的 Scala:
我认为以下会做:
但是,我收到以下错误:
错误:涉及类型 A 的非法循环引用
错误:类型 scala.math.Ordering[A] 的发散隐式扩展从对象排序中的方法 Tuple9 开始
我哪里错了?
scala - 有序、部分有序的方差
根据文档,PartiallyOrdered[A]
在 中是协变的A
,而在Ordered[A]
中是不变的(但曾经是协变的)A
。
为什么曾经Ordered[A]
是协变的A
?这不是明显违反了替代原则吗?
为什么不能Ordered[A]
逆变A
?例如,这将允许Ordered[Traversible[Char]]
将 a 键入为Ordered[StringBuilder]
。我不明白这怎么会有问题。
我无法理解tryCompareTo
in的签名PartiallyOrdered
。看起来参数可以是任何超类型的实例A
。你不能通过调用传递任何对象tryCompareTo[Any](anything)
吗?如果是这样,方法签名比什么更好tryCompareTo(that: Any)
?
从逻辑上讲,有序集是部分有序集的子类,但 Scala 类似乎没有反映这种关系。这是因为不能Ordered[A]
尽可能地协变吗?A
PartiallyOrdered[A]
c# - 委托中的派生类型功能
我想写一个带有签名的方法Expression<Func<T, bool>> Foo<T>()
。我的 U 类继承自 T。我想在此委托中包含特定于 U 的处理。问题是,T 不能隐式转换为 U。有什么方法可以在这个方法中访问 U 特定的属性吗?
复杂性:我也有想要处理的类型 V : T ,所以我不能通过在签名中用 U 替换 T 来利用方差。