相关疑难解决方法(0)

类型(c→d)→(a→b→c)→(a→b→d)的Haskell函数组合算子

普通的功能组成属于这种类型

(.) :: (b -> c) -> (a -> b) -> a -> c
Run Code Online (Sandbox Code Playgroud)

我认为这应该概括为类型:

(.) :: (c -> d) -> (a -> b -> c) -> a -> b -> d
Run Code Online (Sandbox Code Playgroud)

一个具体的例子:计算差分平方.我们可以写diffsq a b = (a - b) ^ 2,但感觉我应该能够编写(-)(^2)编写类似的东西diffsq = (^2) . (-).

当然,我不能.我可以做的一件事是使用一个元组而不是两个参数(-),通过转换它uncurry,但这不一样.

有可能做我想要的吗?如果没有,我误解的是什么让我认为它应该是可能的?


注意:这里已经有效地提出这个问题,但是没有给出答案(我怀疑必须存在).

haskell pointfree function-composition

39
推荐指数
5
解决办法
9075
查看次数

标签 统计

function-composition ×1

haskell ×1

pointfree ×1