具有签名的函数的名称:`(a - > a - > b) - > (a - > b)`

时间:2018-01-15 17:15:33

标签: haskell functional-programming type-signature

我想知道具有以下签名和实现(Haskell-notation)的函数是否有一个好名字:

humble :: (a -> a -> b) -> a -> b
humble f x = f x x

似乎与fold1fold没有基本情况)有某种关系。

1 个答案:

答案 0 :(得分:9)

正如@ 4castle在评论中提到的那样,您正在寻找的功能是<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>中的join。它的类型是

Control.Monad

简单的读者monad是join :: Monad m => m (m a) -> m a ,所以如果我们设置(->) r,我们就会得到

m ~ (->) r

或者更简洁地说,

join :: (->) r ((->) r a) -> (->) r a

这就是你想要的。