type-constraints相关内容

haskell - 排名n约束? (或者,monad变压器和数据适合)

我试图写一些似乎与“排名2”类似的东西,而不是约束。 (或者,假设在“rank 2 types”的定义中将 - > 更改为 => 是有意义的;如果你想得到更好的术语,请编辑该问题)。 setup 首先, 合适 typeclass(来自 Data.Suitable ,rmonad的基础)可以用来表示可以使用的值的类型。在这个问题中,我将使用 合适的ma 表示值 a ..
发布时间:2018-06-04 17:31:46 其他开发

具有类型约束的Haskell类型系列实例

我试图用类型族来表示表达式,但我似乎无法弄清楚如何编写我想要的约束,而我开始觉得这是不可能的。这里是我的代码: class可评估的c其中 类型返回c :: * 评估:: c - >返回c 数据否定n =否定n 实例(可评估n,返回n〜Int)=>可评估的(Negate n)其中 类型Return(Negate n)=返回n 评估(Negative n)=否定(评估n) ..

如何限制关联的数据?

class(Context(Associated) ab))=>类别a其中 数据关联a :: * - > * 实例上下文(Associated ab)其中 func1 =错误“func1” 然而,不在范围内的自由变量 b 阻止了我这样做。其中一个解决方案是从 Context 复制类的功能,但它看起来很难看。 class Class a where data ..
发布时间:2018-06-04 17:10:25 其他开发

真正适用于多少应用,而不是“合并”?

对于不确定性传播大约类型,我想有 Functor 到 Monad 。但是这不起作用,因为我需要一个包含类型的向量空间结构,所以它实际上必须是这些类的受限版本。因为对于那些人来说,似乎还没有一个标准的图书馆(或者是那里?请指点一下。有 rmonad ,但它使用 * 而不是约束作为上下文种类,这似乎只是过时了),我暂时写了我自己的版本。 对于 Functor class CFunctor ..
发布时间:2018-06-04 14:45:36 其他开发

当通过带有接口约束的泛型参数传递时,是否将值类型装箱?

(作为研究回答这个问题的结果,我(认为我有!)确定答案是“不”。但是,我必须在几个不同的地方查找才能找出答案,所以我认为这个问题仍然有价值,但如果社群投票结束,我不会受到摧残。) 例如: void f (T val)其中T:IComparable { val.CompareTo(null) ; } void g() { f(4); 是 4 ..
发布时间:2018-04-21 20:35:16 C#/.NET

F#类型参数缺少一个约束

我试图为一个包装类定义一个通用的加法运算符。到目前为止,我有这样的:(从实际代码中简化) type Wrap = | (+)(Wrap x,Wrap y)= Wrap(x + y) 让内联addSelf x = x + x 确实有效: let i = addSelf(Wrap 1)//返回Wrap 2 让f = addSelf(Wrap 1)/ ..
发布时间:2018-04-21 20:26:01 其他开发

界面作为类型约束和界面作为参数的区别?

如果我想创建一个将 IList 的实例作为参数(或任何其他接口,但让我们使用 IList code>作为例子),我可以创建一个类型约束的泛型方法,例如: public static void Foo1(T list)其中T:IList { } 或者,我可以创建一个直接使用 IList 参数的方法: public static void Foo2( ..

具有特定属性的记录类型的F#类型约束

我试图创建一个泛型函数,它需要它的类型参数,它是一个记录类型,并且它有一个特定的属性。以下是一个生成相关编译器错误的示例: let foo (a:'a)= a'= {a with bar =“baz”} a' 编译此错误,我得到一个错误,指出记录标签栏未定义。 我尝试添加下面的类型约束: let foo ..
发布时间:2018-04-21 19:50:53 其他开发

为通用参数指定构造函数约束

我有一个对象集合,我将其作为参数传递以创建另一种类型的对象(一对一)。我在很多地方都这样做(基本上是从数据对象转换为业务对象)。我想写一个通用的扩展方法来完成这个。但是我被卡住了,因为我不知道如何指定约束条件,即业务对象具有以数据对象为参数的构造函数。以下是我的函数的代码: public static IList ConvertTo(这个IEnumerable列 ..
发布时间:2018-04-21 19:47:26 C#/.NET

枚举< ;?延伸界面>

interface Fooable { void someCommonMethod(); } 枚举E1实现Fooable { // someCommonMethod()的一些枚举和定义 } 枚举E2实现Fooable { // someCommonMethod()的一些不同的枚举和不同的定义 } ,然后在其他地方使用这个变量实现一个变量是Enum ..
发布时间:2017-08-24 00:36:38 Java开发

模板约束可用于变量模板吗?

在最新的模板约束中,提出了一个用于约束模板参数的新工具集。此外,在C ++ 14中提供了变量模板。变量模板允许定义类型参数化的常量等。 没有提到这些特性如何交互。使用pi的规范示例,我们可以具有: template constexpr double pi(3.141592653589793238); template ..
发布时间:2016-10-30 01:02:30 C/C++开发