问题标签 [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.
function - Haskell 中的多态类型
我遇到了这个功能
我想我会尝试自己定义多态类型以理解这个概念。
我的想法如下:
该函数有 3 个参数,所以我们有t1 -> t2 -> t3 -> T
p
在 if 条件中使用,因此它必须返回 abool
,因此t1 = a -> Bool
f
也是相同的类型,p
因为它在 else 块中作为参数传递,因此t2 = a -> Bool
x 在 if 条件中使用,因此它必须返回一个布尔值,因此
t1 = a -> Bool
但是当我检查 ghci 中的类型时,他们给我的类型是
iter :: (t -> Bool) -> (t -> t) -> t -> t
有人可以解释一下这背后的原因。
谢谢
function - 多态类型的函数作为haskell中的参数?
我试图定义以下函数的多态类型:
我的想法如下:
的第一个参数
flip
,f
接受两个参数,所以(t1 -> t2 -> t3)
, 的第二个参数由于函数内部的参数
flip
而x
具有类型。t1
t1
f
的第三个参数
flip
,由于函数内部的参数y
而具有类型。t3
t3
f
我不知道整体回报的多态类型。
但是当我检查 ghci 中的类型时,我得到:
有人可以帮忙看看这个例子是什么吗?
谢谢
scala - 将搜索项和运算符传递给 Scala 多态函数
我有这个多态函数:
从 Scala 中的函数式编程中,我想传递运算符 < 是否等于特定值 >。我该怎么做?我目前有这个:
这里的操作符是 < == "def">。Scala 不喜欢这样,但我似乎无法找到一种方法来传递该值,运算符对。有什么东西告诉我可以在这里使用柯里化吗?
haskell - Haskell 多态函数使用 Either Left Right
我是 Haskell 的新手。我有以下类型:
我想创建一个函数,我将使用一个函数在 2EvalResult
种类型上使用它,并相应地得到一个EvalResult
。如果我得到 2 个值类型,我想对它们使用函数(例如 sum/sub),如果我得到 EvalError,我想返回 EvalError。
我做了什么:
错误:
postgresql - port Oracle decode() using variadic, anyarray, and anyelement
I need to port from Oracle a stored procedure that uses decode()
extensively. That is, I can't use series of CASE WHEN expr THEN expr [...] ELSE
as the guide suggests.
I wanted to create a variadic function, but here's the problem: in Oracle the function can accept any number of key-value pairs and the type of the key not necessarily matches the type of the value:
I tried to use anyarray
:
But this only works when all the arguments are of the same type:
If the desired syntax is not possible please advise another way of passing the expr
, the set of pairs, and the default value while keeping their positions same as in Oracle.
scala - 如何将泛型方法转换为泛型函数
问题
如何将定时方法转换为函数?
下面导致“错误:未找到:类型 T”
scala - 类型更高的 lambda
在Dotty中给出以下内容:
我想“简化”BaseCreate
这样我可以Create
像这样实现:
我试过了:
但是编译器抱怨:
这对我来说没有意义。什么是正确的语法,如果有的话?
PS:我不想再向BaseCreate
. 尤其是F
因为这意味着该类Domain.Create
将需要final case class Create[F[_]]
完全不是预期的解决方案。
scala - 为接受带有类型参数的方法的类型类定义构造函数?
我有一种情况,我所知道的解决方案都不是好的解决方案。我正在尝试定义一个类型类,如下例所示,其中它具有S
必须实现另一个类型类(未显示)的抽象类型Valid[A]
。感觉最简单的方法是创建一个apply
构造函数,这将强制用户输入S
并自动为sIsValid
.
问题在于该函数changeType
采用类型参数。尽管进行了一些谷歌搜索,但我还没有弄清楚如何为接受类型参数的函数编写类型注释(这可能是因为 Scala 似乎不允许带有类型参数的匿名函数)。我的方法在这里看起来是明智的吗?如果我可以为其提供类型注释,changeType
那么类型类用户仍然可以将非匿名函数传递给apply
构造函数,这似乎是一个最令人满意的解决方案。
感激地收到任何帮助/想法。
haskell - 我可以在 Haskell 中打印多态函数的类型,就像我将一个具体类型的实体传递给它一样吗?
这是一个具有 3 种类型的多态函数:
这里是一个非多态函数:
如果我们将前者应用于后者,我们会得到一个多态的 1 类型函数:
这意味着使用and(.)
被“实例化”(我不确定这是正确的术语;作为 C++ 程序员,我会这样称呼它) ,因此应用的签名如下b === Char
c === Int
(.)
digitToInt
我的问题是:有没有办法让这个签名打印在屏幕上,给定(.)
,digitToInt
以及我想将前者应用于后者的“信息”?
对于有兴趣的人,这个问题早些时候作为这个问题的副本关闭了。