On Wed, Jan 14, 2009 at 3:12 PM, Neil Mitchell <[email protected]> wrote:
>> 2) In Python it is possible to import modules inside a function. >> >> In Haskell something like: >> >> joinPath' root name = >> joinPath [root, name] >> importing System.FilePath (joinPath) > > Looks a bit ugly, but kind of useful. I'd make the syntax: > > joinPath' root name = joinPath [root,name] > where import System.FilePath(joinPath) > > It does mean you need to read an entire file to see what functions it > imports, but perhaps that is the way it should be. I could also > imagine a syntax: > > joinPath' root name = import.System.FilePath.joinPath [root,name] > > i.e. doing an import and use at the same time. > This can be done with a fully-qualified name (or two). Not quite as succinct, but I assume the scope of these imports is only local anyway. > joinPath root path = jp [root,filename path] > where jp = System.FilePath.joinPath > filename = System.FilePath.takeFileName or > joinPath root path = System.FilePath.joinPath > [root,System.FilePath.takeFileName path] Cheers, D _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
