
Since nobody has provided an example use case, I will. It's not particularly useful, but it's a minimal case that does something interesting. func :: (Int, a) -> Maybe a func (0, x) = Just x func _ = Nothing Excerpts from Brandon Allbery's message of February 23, 2017 10:51 pm:
Without a binding it is useless at top level, but if you strictify the pattern it can be useful in `let` (possibly as a sanity check where you want the program to abort if it fails). I don't recall offhand if it desugars usefully in list comprehensions, but if so it would work as a filter. There may also be other specialized use cases; general syntax tends to get reused a lot in Haskell, so making this case a syntax error could make it difficult to support actually useful cases. :)
(Also I'm sure someone overly clever could figure out some way to abuse it. :)
On Thu, Feb 23, 2017 at 10:41 PM, Harendra Kumar
wrote: On 24 February 2017 at 08:45, Brandon Allbery
wrote: Literally the only use I've seen for this was a CCC puzzle. However, it is the trivial case of something that is more useful: pattern matching the result of an expression (say, a Data.Map.lookup when you know the key exists).
Can you explain how that will be useful (without a binding)? Will the pattern match be ever actually tried when there is no binding?
-harendra
-- brandon s allbery kf8nh sine nomine associates allbery.b@gmail.com ballbery@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
--Taeer