问题标签 [reification]
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.
haskell - 在 Haskell 中使用 Data.Reflection 时,由于类型不明确而无法显示
我对 Haskell 很陌生,并且正在尝试创建一种类型,该类型将代表 Integral 在某个模数上的任何实例。我在网上找到了一些示例代码并正在使用它,所以我的类型定义如下所示:
大多数事情都按照我的意愿进行;我可以显示、加、减等。
但是,我无法显示这些类型的算术运算结果。例如,在 GHCi 中:
我发现这个问题在我尝试实现这些数字的许多其他方式中出现,并且了解 Data.Reflection 包的工作方式给我带来了一些麻烦。我也会对其他人似乎更自然的任何其他实现感到好奇。我最初尝试做类似的事情
并切换,因为我认为它会简化事情,它并没有特别。干杯!
c# - 什么是物化?
我知道Java通过擦除实现了参数多态性(泛型)。我明白什么是擦除。
我知道 C# 通过具体化实现了参数多态性。我知道这可以让你写作
或者您可以在运行时知道某些参数化类型的类型参数是什么,但我不明白它是什么。
- 什么是物化类型?
- 什么是物化价值?
- 当类型/值被具体化时会发生什么?
scala - 如何在准引用中添加评论
我正在尝试为这样的准引号插入类注释
但它抛出一个异常
rdf - 本体中对象属性的属性
如何将属性与本体中的对象属性相关联?
我遇到了一种可以将对象属性定义为类的方法。但是这种方法使定义规则变得困难。还有其他方法吗?
java - Clojure deftype 引用其他类型
尝试使用另一种类型中的一种似乎不起作用:
如何让 Foo 对 Bar 可见?
scala - 如何在scala运行时检查我是否在@specialized函数或类中?
假设我有一个专门的类和一个关联的伴随对象:
有什么方法可以检查
- 如果此实例是专门的子类,则在 Slice 的方法中,
- 如果另一个实例是同一原语的专用子类,则在 Slice 的方法中,
- 如果我正在运行已擦除或专用变体,则在伴生对象上的专用方法中
不求助于 ClassTags 或手动传递 Class[_]?似乎该信息应该可用,但我能想到的唯一方法是检查类的名称。
用例 2) 特别重要,因为如果我知道我在比较苹果和苹果,我可以求助于更快的算法。它可能可以通过反射来完成,但考虑到我们也必须处理 Slice 的非合成子类,这将是相当棘手的;如果我们也有
只要它们都是专用的(或都被擦除),就应该被认为与 Slice[T] 实例“兼容”?
function - Kotlin:带有 get/set 运算符的具体泛型的 UnsupportedOperationException
我正在尝试将函数read
和write
在我的库中分别转换为运算符函数get
和set
。我的函数使用具体的泛型类型,它们也是内联方法。(你可以在这里看到我的图书馆。)
编译器让我通过没有问题,我不明白为什么使用非运算符函数推理工作得很好,但在运行时使用运算符会失败。
代码如下:
有趣的是,我可以使用中缀函数很好地做到这一点,例如:
我也可以与其他运算符一起执行此操作,例如这两个工作:
我还注意到它甚至invoke
可以正常工作!这很奇怪,因为它似乎两者invoke
都get
具有相同的实现。
operator inline fun <reified T> invoke(bar: Int) = foo<T>(bar)
但是,如果我将以下函数添加到 example:operator inline fun <reified T> get(bar: Int) = foo<T>(bar)
然后尝试以下调用,我会遇到错误:val get: Any = example[12345]
prolog - SWI Prolog Clpfd 库 - 物化
我有一个即将举行的逻辑考试,并且一直在研究我课程中过去的一些论文。我遇到了一个关于具体化的问题,并将其发布在下面;
通过使用它来表示变量 B 可以取值 1 或 8 的属性来说明具体化。
在阅读了一些资源并查看了 SWI Prolog 手册之后,我仍然发现物化的概念相当混乱(主要是学习 Java,因此转向学习 Prolog 很困难)。在 prolog 查询中使用布尔逻辑非常令人困惑。
如果没有具体化,我将不得不编写以下代码(我知道这太长了,不能成为正确的答案);
如果有人可以向我展示上述查询,但使用具体化,将不胜感激。
java - 为什么 Function.identity() 打破类型具体化但 t -> t 没有?
在Java 8 lambdas、Function.identity() 或 t->t中找到的答案似乎暗示这Function.identity()
几乎总是等同于t -> t
. 但是,在下面看到的测试用例中,替换t -> t
为Function.identity()
会导致编译器错误。这是为什么?
案例 1 编译得很好,但案例 2 失败:
我的环境是 Windows 10,64 位,Oracle JDK build 1.8.0_92-b14。
更新:看到这是在 ecj 下编译的,我有一个后续问题:这是一个错误javac
吗?JLS对此案有什么看法?
rdf - OWL 双关语可以帮助定义对象属性的数据属性吗?
双关语(在 OWL 2 DL 中引入)允许为类和对象属性赋予相同的名称 (IRI)(参见关联示例)。
我可以使用这种元建模方式在关系上附加属性吗?
例如,关系drives
连接Person
和Vehicle
。我想指定驱动 的,并且velocity
该Vehicle
属性属于drives
。Punning 允许我drives
通过指定一个类和一个名为的对象属性来建模为一个关联类drives
。我猜这将允许我拥有以某种方式与它们关联的数据属性的对象属性。
我想知道这是否是正确的方法。我错过了什么吗?