Haskell 函数返回其他函数的参数

问题描述 投票:0回答:1

对于函数

f :: a->b->c
是否可以编写函数g,以便调用(
f g
)具有类型c? 具体来说,如果我有一个数据类型
data Example = Example String String
,构造函数
Example
属于类型
String->String->Example
,那么有没有一种方法可以让函数“立即”生成两个参数,而不必返回一个元组并将其分开或其他东西类似?

我尝试将 g 作为

g::a->b
,但这不起作用(并且没有意义,因为对于 f 来说,有一个必要的值,而 g 没有编码 a 的任何值),但是从单独打字,这似乎是作为 g 类型唯一合理的选择。

haskell types functional-programming
1个回答
0
投票

不。不过,您可以将

f
传递给另一个函数 - 也许是
g
本身,也许是其他类似
uncurry
的东西。

ghci> :t uncurry f
uncurry f :: (a, b) -> c

ghci> let g = ("foo", 5)
ghci> uncurry f g
© www.soinside.com 2019 - 2024. All rights reserved.