小编Mr *_*r M的帖子

如何实现这个更高阶的功能

我是函数式编程的新手,我正在尝试解决以下练习;


鉴于类型

type Cont r a = (a -> r) -> r
Run Code Online (Sandbox Code Playgroud)

实现以下高阶函数

mapReader :: (a -> b) -> (Cont r a) -> Cont r b
Run Code Online (Sandbox Code Playgroud)

第一步是简化类型,它给出:

mapReader :: (a -> b) -> ((a -> r) -> r) -> (b -> r) -> r
Run Code Online (Sandbox Code Playgroud)

接下来,定义需要在此函数中提供的参数.这些参数是我们得到的三个函数

mapReader :: (a -> b) -> ((a -> r) -> r) -> (b -> r) -> r
mapReader f g h = _1
Run Code Online (Sandbox Code Playgroud)

从这里,我们可以定义以下类型:

f :: a -> b
g :: (a -> r) -> …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming

-1
推荐指数
1
解决办法
127
查看次数

标签 统计

functional-programming ×1

haskell ×1