相关疑难解决方法(0)

Haskell中的部分应用类型

基于这个问题,在此代码中

data Promise a b =  Pending (a -> b) | Resolved b | Broken

instance Functor (Promise x) where
    fmap f (Pending g) = Pending (f . g)
Run Code Online (Sandbox Code Playgroud)

如果

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

然后

Pending g :: Promise a b
Run Code Online (Sandbox Code Playgroud)

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

因为存在f . g.

这意味着

Pending (f . g) :: Promise a c`.
Run Code Online (Sandbox Code Playgroud)

包起来

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

现在fmap …

haskell

4
推荐指数
1
解决办法
1023
查看次数

标签 统计

haskell ×1