8
我正在GHCi做一些實驗,並且我正在嘗試調整中等長時間(5分鐘)的操作。結果開始打印出來,我經常可以知道我的算法在1分鐘或更短的時間內沒有正確調整,所以我取消了操作。但是當我找到結果時,我想讓它繼續結束,然後再使用它。但是,如果我在啓動時指定它,但在處理過程中我看不到它。有什麼方法可以訪問之前輸入GHCi的表達式的結果?在GHCi中,我可以使用前一個表達式的結果嗎?
我正在GHCi做一些實驗,並且我正在嘗試調整中等長時間(5分鐘)的操作。結果開始打印出來,我經常可以知道我的算法在1分鐘或更短的時間內沒有正確調整,所以我取消了操作。但是當我找到結果時,我想讓它繼續結束,然後再使用它。但是,如果我在啓動時指定它,但在處理過程中我看不到它。有什麼方法可以訪問之前輸入GHCi的表達式的結果?在GHCi中,我可以使用前一個表達式的結果嗎?
GHCi爲此具有特殊變量it
。
Prelude> 1
1
Prelude> it
1
這樣做的原因,如GHCi docs說明的是,非IO表達式的行爲,像這樣
someExpr ==> let it = someExpr
print it
如果someExpr
是IO那麼我們就會有
it <- someExpr
print it
所以it
應始終是您以前的表達式的結果。
http://book.realworldhaskell.org/read/getting-started.html#x_U2 –