我想知 Prop 有以下签名和实现(Haskell-notation)的函数是否有一个好名字:
humble :: (a -> a -> b) -> a -> b
humble f x = f x x
似乎与
fold1
有某种关系( fold
没有基本情况)。
最佳答案
正如@4caSTLe 在评论中提到的,您正在寻找的函数是 join
在 Control.Monad
.它的类型是
join :: Monad m => m (m a) -> m a
简单的 reader monad 是
(->) r
,所以如果我们设置 m ~ (->) r
,我们得到join :: (->) r ((->) r a) -> (->) r a
或者,更简洁地说,
join :: (r -> r -> a) -> (r -> a)
这就是你想要的。
关于haskell - 签名为 : `(a -> a -> b) -> (a -> b)` 的函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48267798/