Andrew Pimlott wrote:
> On Wed, Jul 26, 2006 at 05:06:41PM -0400, David Roundy wrote:
> > This doesn't apply uniformly to all programs--except that we can say
> > that any path with a trailing '/' is intended to be a directory, and
> > if it's not, then that's an error.
> 
> I thought some more about this, and I think the right way to handle this
> is on parsing and printing.

Amen.

> After all, the trailing slash has no real
> meaning for any intermediate processing you might do.

Here I beg to differ.  I'd expect:

*> setFileName "foo" "bar" == "bar"
*> setFileName "foo/" "bar" == "foo/bar"

In fact, that's consistent with the current documentation, because

*> getFileName "foo" == "foo"
*> getFileName "foo/" == ""

No matter whether I'm correct, whether my expectation is natural or
practical and whether others agree, the bahaviour has to be clearly
specified and the final slash certainly isn't unimportant.

>     readPath :: String -> (Path, Bool {- trailing delimiter -})
>     showPath :: Path -> String
>     showPathTrailingSlash :: Path -> String
> 
> This is far simpler than trying to figure out what the slash means for
> every path operation.

It's also far uglier...  besides, it isn't about the slash, it is about
the difference between file and directory.


Udo.
-- 
If you cannot in the long run tell everyone what you have been doing,
your doing was worthless.
                -- Erwin Schrödinger

Attachment: signature.asc
Description: Digital signature

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

Reply via email to