Haskell 函数的适当定义方程

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

任务是为以下函数给出适当的定义方程:

  1. 咖喱 :: ((a, b) → c) → a → b → c

  2. uncurry :: (a → b → c) → (a, b) → c

  3. curry 接受一个函数和两种类型 (a,b) 并返回 c。

  4. uncurry 接受两个函数并返回 c。

我实际上不知道此时该做什么。有人可以帮忙吗? 预先感谢!

haskell task higher-order-functions
1个回答
0
投票

首先为

curry
编写定义,如下所示:

curry :: ((a, b) -> c) -> a -> b -> c
curry f x y = …

所以这里

f
具有类型
(a, b) -> c
,并且
x
y
分别具有类型
a
b
。现在看看如何组合
f
x
y
来生成具有
c
类型的内容。根据
f
x
y
的类型,只有一种合理的方法可以使用所有变量来实现此目的。

uncurry
相同:

uncurry :: (a -> b -> c) -> (a, b) -> c
uncurry f (x, y) = …
© www.soinside.com 2019 - 2024. All rights reserved.