[Haskell-cafe] Re: Indent for haskell
Donald Bruce Stewart
dons at cse.unsw.edu.au
Tue Apr 4 03:03:54 EDT 2006
patc:
>
> Is there an equivalent of an "indent" program for haskell? I have a
> bit of code I want to clean up ...
You could run your code through ghc, with -ddump-parsed turned on.
Then with a little bit of sed magic, you could recover the original code
Before:
$ cat B.hs
main = do {
;print (f 10)
; print (f 20)
;print (f 0xdeadbeef)
}
f x = sqrt ( fromIntegral (x * 10133123 `mod` 1231111121 :: Int ))
After:
$ ghc -fno-code -ddump-parsed B.hs
==================== Parser ====================
main = do
print (f 10)
print (f 20)
print (f 3735928559)
f x = sqrt (fromIntegral ((x * 10133123) `mod` 1231111121 :: Int))
Postprocess:
$ ghc -fno-code -ddump-parsed B.hs | sed '/^===/d'
main = do
print (f 10)
print (f 20)
print (f 3735928559)
f x = sqrt (fromIntegral ((x * 10133123) `mod` 1231111121 :: Int))
Yay!
Now, I suspect there may be actually be (not well publicised) tools for this.
If there are, they should go on the haskell.org "Libraries and tools" page.
-- Don
More information about the Haskell-Cafe
mailing list