28得票2回答
JavaScript中的单态性和多态性为什么很重要?

我一直在阅读关于变更检测的文章,它们都说单态函数比多态函数快得多。例如,这是一句引用: “原因是必须以动态方式编写,以便可以检查每个组件,无论其模型结构如何。VM 不喜欢这种动态代码,因为它们无法对其进行优化。由于对象的形状并不总是相同,因此被认为是多态的。Angular 在运行时为每个组件...

19得票3回答
为什么在Haskell(GHC)中多态性如此昂贵?

我提出这个问题是参考这个SO问题。Don Stewart的答案说:"第一行表示"你的代码高度多态性,将所有float变量更改为Double...",这样可以使代码性能提高4倍。 我有兴趣在Haskell中执行矩阵计算,是否应该养成编写高度单态化代码的习惯? 但是一些语言利用特设多态性生成快...

13得票4回答
子图同构和子图单同态之间的区别是什么?

在我曾经工作的一个项目中,出现了同构与单态的主题 。 一些背景:我不是图论方面的专家,也没有正式的培训。但这个主题在化学中非常重要,在那里化学家期望他们使用的结构搜索系统发生特定类型的子图匹配。 如果目标图A具有n个节点和m条边,则化学家将接受查询图B具有n个节点和m-1条边的子图匹配。唯...

10得票1回答
朱莉娅是否对递归多态类型执行代码单态化?

我注意到在进行代码单态化的语言中(例如:C++、Rust等),实现多态递归类型非常困难,甚至不可能。这通常是因为编译器需要为类型的每个可能实例生成代码,这通常会导致无限递归。 支持此功能的语言通常使用类型擦除。编译器不会尝试实例化下一个递归调用,因为它已经知道了类型的布局。 Julia执行代码...