I'd favor unsnoc and uncons over viewL / viewR as the type is a bit different having no dedicated view data type, etc.

uncons seems by far more commonly reinvented name for the concept, being used across bytestring, parsec, etc.

https://www.fpcomplete.com/hoogle?q=uncons&env=ghc-7.4.2-stable-13.09

While the viewL/viewR's out there all have their heritage in the Data.Seq / fingertree usage.

https://www.fpcomplete.com/hoogle?q=viewl&env=ghc-7.4.2-stable-13.09

I tend to reserve using viewL / viewR for the dedicated data type variant, as because the latter fits in a bit worse with other uses of Maybe but can be ever so slightly more efficient due to the dedicated constructor I often try to supply both.

Also a motivation for the uncons nomenclature is it preserves something like symmetry between 
`unfoldr uncons` and `foldr (:) []`.

It is a much easier to sell an uncons/unsnoc than to sell new data types and a viewL/viewR to go with them, and it seems to me to be better to reserve the latter names for folks who do want to supply such a beast.

-Edward


On Sun, Jul 20, 2014 at 12:07 AM, Henning Thielemann <schlepptop@henning-thielemann.de> wrote:
Am 20.07.2014 05:01, schrieb wren romano:


Yes, uncons is a view, but I see no benefit in naming the function
after that fact— given that "uncons" is the standard/popular name, and
that we don't typically name any other views "viewFoo".

As I said, I chose the name according to Data.Sequence:

http://hackage.haskell.org/package/containers-0.5.5.1/docs/Data-Sequence.html#v:viewl


There is also:
http://hackage.haskell.org/package/containers-0.5.5.1/docs/Data-Map-Lazy.html#v:minView
http://hackage.haskell.org/package/containers-0.5.5.1/docs/Data-Set.html#v:minView


But I am not bound to it.

_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://www.haskell.org/mailman/listinfo/libraries