4

私を返す関数があり、IO なしIO (Map.Map String Double)で必要です。Map.Map String Double

私はこれをやろうとしましたが、次のように失敗しました: Not in scope: data constructor `IO'.

extractIO (IO (a)) = a
4

2 に答える 2

13

IO を単にアンラップすることはできません。それが IO の要点です。

IO (Map.Map String Double) があり、それを処理したい場合は、モナド コンテキスト内で処理する必要があります。

stuff :: IO ()
stuff = do
  map <- theThingThatReturnsYourIOMap
  theThingThatNeedsYourUnwrappedMap map

やりたいことを詳しく説明していただければ、より詳細な回答を差し上げることができます。

于 2013-05-27T12:49:05.250 に答える
1

http://cvs.haskell.org/Hugs/pages/libraries/base/System-IO-Unsafe.html

unsafePerformIO

しかし、それは悪い考えです。

于 2013-05-27T12:51:15.303 に答える