我有一个返回用户 ID 的单子函数:
do
id <- getUserId
我需要能够在 getUserId 上“叠加”一个函数,该函数查找并返回 getUserId 返回的值的别名
显然,我可以编写一个特定的函数 getAlias 并重写 monad 本身:
do
id <- getAlias getUserId
但是我觉得这可以通过将 getAlias 隐藏在 monad 的绑定函数中来更普遍、可重用和不可见地完成。
Monad Transformers 是否执行此功能,即将内部 monad 的绑定函数与外部 monad 的绑定函数组合在一起?或者我需要一些其他的控制结构吗?