[Haskell-cafe] How to express a logic matrix clearly?

Magicloud Magiclouds magicloud.magiclouds at gmail.com
Fri May 17 03:26:45 UTC 2019


This works, but may not suitable as case. Sometimes it may be hard to
name the function just for branching.

On Fri, May 17, 2019 at 11:25 AM Vanessa McHale <vanessa.mchale at iohk.io> wrote:
>
> For one, you should pattern match rather than using nested ifs, viz.
>
> foo A1 B1 = fun1
>
> Using a case statement on tuples is not necessary.
>
> On 5/17/19 3:12 AM, Magicloud Magiclouds wrote:
> > Hi,
> > I have trouble describing this clearly. Let me show code directly.
> >
> > data Rule1 = A1 | A2 | A3
> > data Rule2 = B1 | B2 | B3
> >
> > foo a b =
> >   if a == A1
> >     then if b == B1
> >       then fun1
> >       else if b == B2
> >         then fun2
> >         else if b == B3
> >           then fun3
> >           else fun4
> > ...
> >
> > Basically, Rule1 and Rule2 compose a matrix, for each case of Rule1
> > and Rule2, I need to do different things. Above is already long and
> > not quite clear, and it is far from complete.
> >
> > So my question is, is there a way/lib that I can make this clear to
> > read/understand?
> > _______________________________________________
> > 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.
> _______________________________________________
> 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