polymorphism相关内容

定义赋值和内在赋值(使用nagfor)之间存在冲突?

本征多态赋值是某些Fortran编译器(例如ifort 18、nagfor 6.2)的最新功能,在旧版本(例如ifort 17、gfortran 6.3)中不提供。适用于这些旧版本的一个众所周知的解决方案是使用以下示例中定义的赋值(取自《齐弗斯与史莱特姆》一书并改编自该书): module deftypes type, abstract :: shape_t int ..
发布时间:2022-08-26 17:37:39 其他开发

运行时多态到底意味着什么?

我对运行时多态有些困惑。如果我错了,请纠正我,但据我所知,运行时多态意味着函数定义将在运行时得到解析。 举个例子: class a { a(); ~a(); void baseclass(); } class b: class a { b(); ~b(); void derivedclass1(); } class c: class a { c(); ~c(); void deri ..
发布时间:2022-06-28 14:57:51 C/C++开发

你在 Haskell 中发现了更高级别的类型有什么用途?

更高等级的类型看起来很有趣.这个例子来自 Haskell wikibook: foo :: (forall a.a -> a) -> (Char,Bool)foo f = (f 'c', f True) 现在我们可以评估 foo id 而不会导致编译器爆炸.这个例子在本书后面很快出现了我在其他几个地方看到的真实例子:ST monad 和 runST.这很酷. 但是我还没有遇到过这样的情况 ..

Milner 是否让多态性成为 2 级特征?

let a = b in c 可以被认为是 (\a -> c) b 的语法糖,但在一般的类型化设置中它不是案子.例如,在 Milner 演算中 let a = \x ->;x in (a True, a 1) 是可键入的,但看似等效的 (\a -> (a True, a 1)) (\x -> x) 不是. 但是,后者在系统 F 中是可键入的,第一个 lambda 为 2 级类型. 我的 ..
发布时间:2022-01-24 16:56:48 其他开发

为什么单态和多态在 JavaScript 中很重要?

我一直在阅读一些关于变化检测的文章,他们都说单态函数比多态函数快得多.例如,这是一个引用: (..)这样做的原因是,它必须以动态方式编写,所以无论其模型结构如何,它都可以检查每个组件喜欢.虚拟机不喜欢这种动态代码,因为它们不能优化它.它被认为是多态的对象的形状并不总是一样的.Angular 在每个组件的运行时,它们是单态的,因为它们知道组件模型的形状到底是什么.虚拟机可以完美优化此代码,使其 ..
发布时间:2022-01-24 16:56:41 前端开发

是否有使用代数数据类型或多态性的 OOP 抽象类的 Haskell 等价物?

在 Haskell 中,是否可以编写一个带有签名的函数,该函数可以接受两种不同(尽管相似)的数据类型,并根据传入的类型进行不同的操作? 一个例子可能会让我的问题更清楚.如果我有一个名为 myFunction 的函数,以及两个名为 MyTypeA 和 MyTypeB 的类型,我可以定义 myFunction 以便它只能接受 MyTypeA 或 MyTypeB 类型的数据作为它的第一个参数? ..

“对象"不包含“名称"的定义;

我收到一条错误消息,告诉我: “BankAccount.account"不包含“提款"的定义. 这是我的代码: 使用系统;使用 System.Collections.Generic;使用 System.Linq;使用 System.Text;命名空间银行账户{班级帐号{受保护的字符串名称;受保护的浮动余额;公众号(string n, float b){名称 = n;余额 = b;}公 ..
发布时间:2022-01-24 16:55:51 C#/.NET

使用模板函数设计层次类

我正在编写一个类 Base,它的成员函数采用模板参数: 类基{模板void func(const T& t) { ... }}; 有一个类Derived,它在概念上继承了Base的性质,具有相同的func函数,但实现不同. 一开始我想从Base派生Derived,把func变成虚拟的,但是我做不到,因为它是模板. 我也想过 CRTP,但它是一个选项,因为实例必须能够放入容器 ..
发布时间:2022-01-24 16:55:33 C/C++开发