haskell debug

最近在学习haskell这门神奇的语言,但是由于print不方便,程序出错的时候都不知道是怎么回事。网上搜了一把发现有这么一个好东西

import Debug.Trace

funct :: Integer -> [Integer] -> Bool 
funct a list = trace (show list) $ funct (a + 1) (a : list)

这样子一来会把递归过程中的每一步都打印出来,方便多了,但是要注意的是,由于lazy evaluation的关系,debug输出会和程序的正常输出混在一起

原文地址:https://www.cnblogs.com/sickboy/p/3251033.html