[Haskell-cafe] MultiCase alternative

Baa aquagnu at gmail.com
Thu Jun 15 14:46:41 UTC 2017


Hmm, seems there is a way:

  {-# LANGUAGE ViewPatterns              #-}

  isCD (C c) = c
  isCD (D c) = c

  case x of
    A a -> ..
    B b -> ..
    (isCD -> x) -> ..process-x..


> On 2017-06-15 16:11, Baa wrote:
> > Hello, Everyone!
> > 
> > As I understand "MultiCase" proposal was not approved, so my
> > question is: is there alternatives to multi-case? I have code like:
> > 
> >   case x of
> >     A a -> ..
> >     B b -> ..
> >     C c -> --same--
> >     D c -> --same--
> > 
> > and I want to merge code of "C c" with "D c" branch. Anywhere, in
> > general: is any alternatives to make "OR"s in patterns? I don't see
> > how to do it with pattern guards, pattern synonyms, views
> > extensions and don't see another related extensions.
> >   
> 
> Create a function.
> 
> Regards,
> 
> _______________________________________________
> 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.


More information about the Haskell-Cafe mailing list