[Haskell-cafe] how to print out intermediate results in a recursive function?
Qi Qi
qiqi789 at gmail.com
Sat Feb 4 19:23:07 CET 2012
Hello,
I have a question;how can I print out the intermediate number lists in a
mergesort recursive function like the following one.
merge [] ys = ys
merge xs [] = xs
merge (x:xs) (y:ys) = if x <= y
then x : merge xs (y:ys)
else y : merge (x:xs) ys
mergesort [] = []
mergesort [x] = [x]
mergesort xs = let (as, bs) = splitAt (length xs `quot` 2) xs
in merge (mergesort as) (mergesort bs)
main = do
print $ mergesort [5,4,3,2,1]
In the main function, it only prints out the final number list. But I'd
like to print out the number lists in every recursive level. How can I
do that? Thanks.
--
Qi Qi
More information about the Haskell-Cafe
mailing list