14 Jan 15:49
Re: walking a directory tree efficiently
Manlio Perillo <manlio_perillo <at> libero.it>
2009-01-14 14:49:21 GMT
2009-01-14 14:49:21 GMT
Don Stewart ha scritto: > manlio_perillo: >> Hi. >> >> During a tentative (quite unsuccessfull) to convert a simple Python >> script that prints on stdout a directory and all its subdirectory [1] in >> a good Haskell (mostly to start to do real practice with the language), >> I came across this blog post: >> http://blog.moertel.com/articles/2007/03/28/directory-tree-printing-in-haskell-part-three-lazy-i-o >> >> >> Since recently I read about alternatives to lazy IO (like iteratee), I'm >> curious to know if a flexible, efficient and safe alternative exists, >> for the task of display a directory tree. >> >> >> [1] http://paste.pocoo.org/show/99523/ >> > > If you can do it with strict IO in Python, do the same thing in Haskell > with System.IO.Strict. > It should be mechanical to translate Python > programs directly into naive IO-based Haskell using strict IO. Boring, > but mechanical. > But that's not the purpose of what I'm doing ;). I'm trying to practice with Haskell, by converting small Python scripts I have written. I hope, in future, to write a "big" program in Haskell. > There's no iteratee/fold-based IO system yet. > Yes, I know. By the way, I have managed to have a working program: http://hpaste.org/13919 I would like to receive some advices: 1) I have avoided the do notation, using functions like liftM. Is this a good practice? Is this as efficient as using do notation? 2) I have written some support functions: mapM' and filterM' Are they well written and generic? Are they already available in some package? Can you suggest better names? 3) I find (,) node `liftM` walkTree' path not very readable. Is it possible to express it in a more (not too much) verbose way? Thanks Manlio Perillo
RSS Feed