问题标签 [polymorphic-functions]

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.

0 投票
1 回答
51 浏览

scala - 无形记录类型可以用作 Poly1 吗?

假设我是否有以下 Record 类型的数据和一个键列表:

我想为 inrr中的每个键提取值hh,然后将它们组合成一个类型级别的对象,最终产生:

如何用最少的代码实现这一点?我显然可以写一个归纳调用的隐式函数,但这似乎有点过头了

0 投票
1 回答
136 浏览

scala - 使用多态函数映射通用元组

Scala 3 提供了类似于 shapeless 的态函数和元组:HList

我们如何使用 Scala 3 功能重新实现以下无形示例?

换句话说,我们怎么能编译这样的东西

0 投票
2 回答
193 浏览

scala - 在 Scala 中,如何在不知道输出类型或完整类型参数的情况下调用适用于输入类型的多态函数?

由于 Scala 2.12(或者是 2.13,不能确定),编译器可以跨多个方法推断潜在类型参数:

最后一行成功推断A = Int, B = String,不幸的是,这需要a: (Int, String)给出一个实例。

现在我想稍微扭曲一下这个 API 并定义以下函数:

这样可以findApplicable[(Int, String)](commutative)自动生成专用于A = Int, B = String. 有没有办法在语言的能力范围内做到这一点?或者我必须升级到 scala 3 才能做到这一点?

UPDATE 1应该注意,commutative 的输出可以是任何类型,不一定是 Function2,例如我尝试了以下定义:

然后重新定义commutative使用它:

糟糕,这不起作用,类型参数没有像值参数一样得到同等对待

0 投票
0 回答
44 浏览

python - python如何处理参数多态函数?

  • 我试图在 python 中发现 5 种变量类型的多态 sum 函数:strintfloatcomplexbool

这是我找到的工作解决方案

  • 我尝试了其他两种方法,但它们没有按预期工作。

第一种方式,Python 不识别类型:它只是调用最后一个 sum 函数并返回错误

第二种方式,它部分有效,但我不能同时支持strnumber

问题:

  • 为什么第一种方法不能按预期工作?
  • 在第二种方式中,如何将正确的类型分配给 sum_gen ?像 sum_gen: type(args[0])
0 投票
2 回答
70 浏览

scala - 为什么多态函数不能在 Scala 中接受通配符(存在)类型?

在下面的示例中,我想知道为什么funPoly不能接受存在量化类型 value outersFromInnersEx,即使funEx可以。

请注意,我在 Scala 3 中对此进行了测试(在线尝试),但问题在 Scala 2 中基本相同,尽管此特定示例在 Scala 2 中存在其他问题。