我有一个功能,返回我IO (Map.Map String Double),我需要Map.Map String Double,没有IO.
我试图这样做,但它失败了:不在范围内:数据构造函数`IO'.
extractIO (IO (a)) = a
Run Code Online (Sandbox Code Playgroud)
Seb*_*edl 12
你不能只打开IO,这就是IO的全部要点.
如果你有一个IO(Map.Map String Double)并且你想要处理那个东西,你必须在monadic上下文中做,即
stuff :: IO ()
stuff = do
map <- theThingThatReturnsYourIOMap
theThingThatNeedsYourUnwrappedMap map
Run Code Online (Sandbox Code Playgroud)
如果您更详细地解释您想要做什么,我们可以给您一个更详细的答案.