私を返す関数があり、IO なしIO (Map.Map String Double)
で必要です。Map.Map String Double
私はこれをやろうとしましたが、次のように失敗しました: Not in scope: data constructor `IO'.
extractIO (IO (a)) = a
私を返す関数があり、IO なしIO (Map.Map String Double)
で必要です。Map.Map String Double
私はこれをやろうとしましたが、次のように失敗しました: Not in scope: data constructor `IO'.
extractIO (IO (a)) = a
IO を単にアンラップすることはできません。それが IO の要点です。
IO (Map.Map String Double) があり、それを処理したい場合は、モナド コンテキスト内で処理する必要があります。
stuff :: IO ()
stuff = do
map <- theThingThatReturnsYourIOMap
theThingThatNeedsYourUnwrappedMap map
やりたいことを詳しく説明していただければ、より詳細な回答を差し上げることができます。
http://cvs.haskell.org/Hugs/pages/libraries/base/System-IO-Unsafe.html
unsafePerformIO
しかし、それは悪い考えです。