我有一个monadic函数,它返回一个用户ID:
do
id <- getUserId
我需要能够在getUserId上添加&#34;,这是一个查找并返回getUserId返回值的别名的函数
显然,我可以编写一个特定的函数getAlias并重写monad本身:
do
id <- getAlias getUserId
但是我认为通过将monAlias隐藏在monad的bind函数中,可以更普遍地,可重用地和不可见地完成这一操作。
Monad变形金刚是否执行此功能,即使用外部monad的绑定函数组合内部monad的绑定函数?或者我在这里需要一些其他的控制结构吗?
答案 0 :(得分:1)
我认为你不能在这里比功能应用程序轻得多。回答你的直接问题:
但我不认为这两个直接答案中的任何一个都很重要,因为getAlias
不太可能是任何守法单身的约束。 (至少,绑定函数必须是非常多态的,getAlias
不是!)。