On Tue, Jul 17, 2012 at 11:34 PM, Richard O'Keefe <[email protected]> wrote:
> Here are two other possible reasons.
>
> It's not just easier, stripPrefix pfx lst is *possible* as long
> as pfx is finite, even when lst is infinite.  The same would not
> be true of a suffix stripper.

Isn't this the case with isSuffixOf, though? And yet it's there along
with isPrefixOf...

> It's so easy to write
>
> stripSuffix sfx lst =
>   case stripPrefix (reverse sfx) (reverse lst) of
>     Nothing -> Nothing
>     Just ys -> Just (reverse ys)

Sure, it's not difficult to write such a function; the issue is the
asymmetry (and thus, broken user expectations) based on the rest of
the library.

> I can think of two cases where I'd want something like this.
> One is manipulating file extensions, where I'd want to use
> System.FilePath.splitExtension or something like that anyway.
> The other is suffix stripping for text processing, where I'd
> want to use a trie to match a whole lot of possible suffixes.

For what it's worth, there are a lot of other cases (outside of file
path handling) in which I've found it useful.

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to