私は(これはちょっとおかしい場合には、私は、余分なコードの束を削除 - このMCVEにしようとして)右のそれを取得します:私はなぜこの変数は範囲外ですか? (ハスケル)
import System.IO
import Control.Monad
import Data.IORef
main :: IO()
main = do
hSetBuffering stdout NoBuffering
input_line <- getLine
let input = words input_line
let x0 = read (input!!0) :: Int
x <- newIORef x0
loop
loop :: IO()
loop = do
input_line <- getLine
let the_dir = input_line :: String
putStrLn x
loop
ちょうどそれをテストしますxを出力しようとしましたが、範囲外です。どうして?どのように私はそれが範囲にあるようにそれを修正するのですか?変数にアクセスする必要がありますが、初めてループに入る前に変数を初期化する必要があります。
「ループ」に入力パラメータを受け入れて「x」を渡すことはできますか? –
私は方法はわかりませんが、それを行うには有効な方法だと私は思っています – user8930358
もっと重要なのは、あなたがしようとしているのは 'IORef'なのですか? –