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


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to