何かを印刷してプログラムをデバッグしたい
例えば、
isPos n
| n<0 = False
| otherwise = True
私は次のようなものが欲しい:
isPos n
| n<0 = False AND print ("negative")
| otherwise = True AND print ("positive")
Haskellで行うことは可能ですか?
ハンマーが言ったようtrace
に、モジュールから使用しDebug.Trace
ます。私が役立つと思ったヒントは、関数を定義することですdebug
。
debug = flip trace
その後、あなたはすることができます
isPos n
| n < 0 = False `debug` "negative"
| otherwise = True `debug` "positive"
これの利点は、開発中にデバッグ印刷を簡単に有効/無効にできることです。デバッグ印刷を削除するには、残りの行をコメントアウトするだけです。
isPos n
| n < 0 = False -- `debug` "negative"
| otherwise = True -- `debug` "positive"
を使用しDebug.Trace.trace
ます。
import Debug.Trace
isPos n
| n < 0 = trace "negative" False
| otherwise = trace "positive" True