fre*_*der 4 haskell functional-programming type-signature
我想知道具有以下签名和实现的函数是否有一个好名字(Haskell-notation):
humble :: (a -> a -> b) -> a -> b
humble f x = f x x
Run Code Online (Sandbox Code Playgroud)
它似乎与某种方式有关fold1(fold没有基本情况).
正如在评论中提到由@ 4castle,你正在寻找的功能是join在Control.Monad.它的类型是
join :: Monad m => m (m a) -> m a
Run Code Online (Sandbox Code Playgroud)
简单的读者monad是(->) r,所以如果我们设置m ~ (->) r,我们得到
join :: (->) r ((->) r a) -> (->) r a
Run Code Online (Sandbox Code Playgroud)
或者,更简洁地说,
join :: (r -> r -> a) -> (r -> a)
Run Code Online (Sandbox Code Playgroud)
这就是你想要的.
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |