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

Magicloud Magiclouds magicloud.magiclouds at gmail.com
Fri May 17 03:24:51 UTC 2019


Yes, that is a good way. I was thinking something like a "table".
Well, just realize that if it was a more dimension, it is hard to
express in 2-D text anyway....

On Fri, May 17, 2019 at 11:21 AM Nathan Bloomfield
<nathan.bloomfield at automattic.com> wrote:
>
> This is a good opportunity to use case syntax. You can also case on tuples, like this:
>
> ```
> foo a b = case (a,b) of
>   (A1,B1) -> fun1
>   (A1,B2) -> fun2
>   (A1,B3) -> fun3
>   (A1,_)  -> fun4   <- this is probably not necessary anymore, unless you expect Rule2 to get more constructors.
>   (A2,B1) -> fun5
>   ...
> ```
>
> On Thu, May 16, 2019 at 10:14 PM Magicloud Magiclouds <magicloud.magiclouds at gmail.com> 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.
>
>
>
> --
> Nathan Bloomfield
> Code Wrangler, Team Absinthe
> Automattic, Inc.


More information about the Haskell-Cafe mailing list