问题标签 [polyvariadic]

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 投票
2 回答
243 浏览

haskell - haskell - 用关联二元运算链接元素

我是一个中级策划者,但只是一个 haskell 初学者。这是我的问题:

假设你有一个关联二元运算,说(>>=)。有这样的多元函数pp (>>=) h g f e = h >>= g >>= f >>= e

我问这个问题是因为这个问题说如果二进制操作采用相同类型的输入是可能的。我想知道这是否可以概括。

EDIT-1:我尝试修改http://okmij.org/ftp/Haskell/vararg-fn.lhs中的代码(可变类型参数的可变数量部分),但进展不大。

EDIT-2:稍微简化代码。

0 投票
1 回答
264 浏览

haskell - 没有参数的 Haskell 多变量函数

我正在尝试在 Haskell 中创建一个多变量函数,我使用这个答案来创建一个基本函数。这是函数的代码:

但问题是:当函数在没有任何参数的情况下被调用时,它不起作用。

例如,我希望能够编写sumOf :: Integer并让这个函数返回0

我该怎么做?

0 投票
2 回答
98 浏览

haskell - 具有多态结果值的多变量函数

我试图write在 Haskell 中实现一个 Pascal 风格的过程作为一个多变量函数。这是具有单态结果类型(IO在这种情况下)的简化版本,可以正常工作:

但是,当将结果类型更改为多态类型时,要在具有MonadIO实例的不同 monad 中使用该函数,我遇到了重叠或无法确定的实例。具体来说,a ~ ()以前版本的那个技巧不再起作用了。最好的方法是以下需要大量类型注释的方法:

有没有办法让这个例子工作而不必在这里和那里添加类型注释并且仍然保持结果类型多态?

0 投票
2 回答
367 浏览

haskell - 具有不同数量参数的 Haskell 函数

我正在尝试使用一个类创建一个 Haskell 函数,以使该函数与不同数量的参数一起工作。

当我使用 ghci 尝试此功能时,我得到以下结果:

我不明白我的错误在哪里以及为什么我的多变量函数不能使用超过 2 个参数。

你知道我的错误来自哪里吗?以及如何使我的函数与任意数量的参数一起工作?

0 投票
2 回答
208 浏览

haskell - haskell中多变量函数的结果类型

在 Haskell 中研究多变量函数时,我偶然发现了以下 SO 问题:

如何创建多变量haskell函数?

Haskell,多变量函数和类型推断

并认为我会通过实现一个函数来尝试它,该函数接受可变数量的字符串并将它们连接/合并成一个字符串:

如果我用至少一个字符串参数调用合并并且我提供最终类型,这到目前为止有效。

省略最终类型会导致错误,即编译如下

结果是

错误消息非常有意义,因为我可以很容易地想出,例如

不是渲染bar成单个字符串,而是渲染成一个接受并返回一个字符串的函数。

有没有办法告诉 Haskell 结果类型必须是 type String?例如,在没有明确定义的情况下Text.Printf.printf "hello world"计算类型。String