我知道在一个do
块内我可以从一元的东西中提取,“提取”它的内容。例如,如果我有一个带有签名的函数:
myFunction :: MyReader (Set Int)
我可以在一个do
块内做到这一点:
mySet <- myFunction
这会给我Set Int
我想要的。但是,如果我更改函数以使其接受参数:
myFunction :: Int -> MyReader (Set Int)
我不能再做我想做的事了:
myFunction' <- myFunction
这无法编译并出现错误Couldn't match expected type
和Probable cause: ‘myFunction'’ is applied to too few arguments
. 尝试这样的事情甚至在语法上都不正确:
myFunction' x <- myFunction x
我确实想myFunction'
成为类型Int -> Set Int
。我无法弄清楚或找到任何地方如何做我想做的事。有人可以帮忙吗?