
On Wed, 3 Apr 2002, D. Tweed wrote:
main = do content <- getContents let rpt letter = report content letter loop rpt alphabet
I'm a bit confused how this can have worked... in Haskell `let' is used in the context of a `let ..<1>.. in ..<2>..' where the code ellided in <1> binds some names to values which are then used in the expression <2> (as in `let x=sqrt 2 in exp x') and so the contents of main isn't (unless I'm missing something) syntactically Haskell.
Beats me, but it was the only (or at least the first) way I could find to create a function inside a do block...
Overall the code looks like a reasonable transliteration into Haskell; as you get more competent with Haskell you'll find various higher level functions that replace some of your stuff, e.g., stars can be written as stars x = take x (repeat '*').
Neat! :)
Regarding Assoc, try just `import Assoc' without trying to cut down on which entities are imported; if it works then you've missed some needed elements from your import specification (the bit in ()'s after the module name); if it doesn't then it probably can't find Assoc at all.
In the latest version of hugs, if you try "import Assoc", you get: runhugs: Error occurred Reading file "assoc.hs": Reading file "/usr/share/hugs/lib/exts/Assoc.hs": Reading file "/usr/share/hugs/lib/exts/EdisonPrelude.hs": Reading file "/usr/share/hugs/lib/exts/Sequence.hs": Reading file "/usr/share/hugs/lib/Monad.hs": Reading file "/usr/share/hugs/lib/exts/Sequence.hs": Reading file "/usr/share/hugs/lib/exts/ListSeq.hs": Reading file "/usr/share/hugs/lib/exts/Assoc.hs": Parsing ERROR "/usr/share/hugs/lib/exts/Assoc.hs":51 - Haskell 98 does not support multiple parameter classes At least, *I* get that. :) And the -98 flag is just as bad: [~/work/haskell]: runhugs -98 assoc.hs runhugs: Error occurred Reading file "assoc.hs": Reading file "/usr/share/hugs/lib/exts/Assoc.hs": Reading file "/usr/share/hugs/lib/exts/EdisonPrelude.hs": Reading file "/usr/share/hugs/lib/exts/Sequence.hs": Reading file "/usr/share/hugs/lib/Monad.hs": Reading file "/usr/share/hugs/lib/exts/Sequence.hs": Reading file "/usr/share/hugs/lib/exts/ListSeq.hs": Reading file "/usr/share/hugs/lib/exts/Assoc.hs": Reading file "assoc.hs": ERROR "assoc.hs" - Entity "foldl1" imported from module "Assoc" already defined in module "Prelude" Which is why I restricted what was being imported. :) Anyway, thanks for the response! :) Cheers, - Michal http://www.sabren.net/ sabren@manifestation.com ------------------------------------------------------------ Give your ideas the perfect home: http://www.cornerhost.com/ cvs - weblogs - php - linux shell - perl/python/cgi - java ------------------------------------------------------------