2013-06-06 13 views
8

Sto facendo alcuni esperimenti con GHCi e ho un funzionamento moderatamente long (5 minuti) che sto cercando di sintonizzare. Il risultato inizia a stampare a metà e spesso posso dire che il mio algoritmo non è stato sintonizzato correttamente dopo 1 minuto o meno, quindi cancello l'operazione. Ma quando trovo il risultato, voglio permetterlo di continuare fino alla fine, quindi usarlo anche in seguito. Se lo assegno quando lo avvio, tuttavia, non riesco a vederlo mentre elabora. C'è un modo per accedere al risultato dell'espressione precedente inserita in GHCi?In GHCi, posso usare il risultato dell'espressione precedente?

+0

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

risposta

16

GHCi dispone della variabile speciale it per questo scopo.

Prelude> 1 
    1 
Prelude> it 
    1 

La ragione di ciò, come spiegato nella GHCi docs è che non IO espressioni si comportano in questo modo

someExpr ==> let it = someExpr 
      print it 

Se someExpr era IO allora avremmo

it <- someExpr 
print it 

così it dovrebbe sempre essere il risultato della tua espressione precedente.

Problemi correlati