2013-06-06 26 views
8

Tôi đang thực hiện một số thử nghiệm trong GHCi và tôi có hoạt động chạy dài (5 phút) vừa phải mà tôi đang cố gắng điều chỉnh. Kết quả bắt đầu in ra một phần, và tôi thường có thể nói rằng thuật toán của tôi không được điều chỉnh chính xác nhưng sau 1 phút hoặc ít hơn, vì vậy tôi hủy hoạt động. Nhưng khi tôi tìm thấy kết quả, tôi muốn cho phép nó tiếp tục kết thúc, sau đó sử dụng nó sau đó. Nếu tôi chỉ định nó khi tôi bắt đầu nó, mặc dù, tôi không thể nhìn thấy nó khi nó xử lý. Có cách nào tôi có thể truy cập kết quả của biểu thức trước đó được nhập vào GHCi không?Trong GHCi, tôi có thể sử dụng kết quả của biểu thức trước đó không?

+0

http://book.realworldhaskell.org/read/getting-started.html#x_U2 –

Trả lời

16

GHCi có biến đặc biệt it cho mục đích này.

Prelude> 1 
    1 
Prelude> it 
    1 

Lý do cho điều này, như được giải thích trong GHCi docs là biểu thức phi IO cư xử như vậy

someExpr ==> let it = someExpr 
      print it 

Nếu someExpr là IO thì chúng ta sẽ phải

it <- someExpr 
print it 

nên it phải luôn là kết quả của biểu thức trước đó của bạn.

Các vấn đề liên quan