4
在Mathematica中,ShowIt
function通常用於調試。 基本上,ShowIt
是一個標識函數,它將其參數的值輸出到控制檯。我想知道,如何爲Haskell編寫相同的函數。 Haskell的問題是,因爲函數執行IO,所以它不能具有與輸入類型相同的返回類型。我認爲我們必須使用不安全的IO來實現showIt
。但我不知道如何。如何在Haskell中編寫showIt函數?
在Mathematica中,ShowIt
function通常用於調試。 基本上,ShowIt
是一個標識函數,它將其參數的值輸出到控制檯。我想知道,如何爲Haskell編寫相同的函數。 Haskell的問題是,因爲函數執行IO,所以它不能具有與輸入類型相同的返回類型。我認爲我們必須使用不安全的IO來實現showIt
。但我不知道如何。如何在Haskell中編寫showIt函數?
這已經存在於Debug.Trace
包中。它被稱爲traceShowId
。 (它的確使用了unsafePerformIO
- 你可以看到the implementation of trace
here。)
想要獲得更好的調試純代碼的方法,請參閱[你可以發明Monad! (也許你已經有)](http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html)。 – Cirdec 2015-02-11 00:24:35