2025/11/28

Newest at the top

2025-11-29 00:21:42 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-29 00:12:03 +0100 <monochrom> Until one says something like "$130 plus 5% plus 6%" OK OK that's group actions. :)
2025-11-29 00:11:28 +0100 <haskellbridge> <loonycyborg> and then superclassing it
2025-11-29 00:11:18 +0100 <haskellbridge> <loonycyborg> then you can save some typing by generating a group for it with TH
2025-11-29 00:11:06 +0100 <haskellbridge> <loonycyborg> I was just thinking that in many cases particular operator just happens to form a group
2025-11-29 00:10:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-11-29 00:08:53 +0100 <haskellbridge> <loonycyborg> well multiplication is a group too in most cases.
2025-11-29 00:08:52 +0100 <EvanR> but I think it's a deeper psychosis
2025-11-29 00:08:44 +0100 <EvanR> to be fair ascii doesn't have that many symbols so you might think that's why everything can be +-ed in designers minds
2025-11-29 00:08:15 +0100tromp(~textual@2001:1c00:3487:1b00:9176:7929:ae5a:d4f6) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-11-29 00:08:08 +0100 <haskellbridge> <loonycyborg> I remember reading somewhere about a window system that overloaded + to add new widgets or something :P
2025-11-29 00:08:03 +0100 <EvanR> so no you don't usually see asterisk as a group operator
2025-11-29 00:07:34 +0100 <EvanR> as an aside he observed... that's not a thing you do xD
2025-11-29 00:07:27 +0100 <monochrom> I think I saw that, yeah.
2025-11-29 00:07:10 +0100 <EvanR> with fancy formatted math
2025-11-29 00:07:04 +0100 <EvanR> it contains * in it as an operator, like, an asterisk
2025-11-29 00:06:52 +0100 <EvanR> was just watching an old Stand Up Maths where he goes over a totally bogus economic formula published by ... a certain government
2025-11-29 00:06:23 +0100 <haskellbridge> <loonycyborg> like + *
2025-11-29 00:06:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-29 00:06:18 +0100 <haskellbridge> <loonycyborg> if you only use those that are traditionally groups
2025-11-29 00:06:08 +0100 <haskellbridge> <loonycyborg> but it doesn't count as new operator right?
2025-11-29 00:05:46 +0100 <EvanR> defining new operators gets hate so you don't want to do it easily
2025-11-29 00:05:29 +0100 <EvanR> loonycyborg, it sounds like that would really fuel the "too many operators" crowd
2025-11-29 00:04:55 +0100 <haskellbridge> <loonycyborg> Like you could make a TH splice that will make a (semi)group over an operator that you pass it
2025-11-29 00:04:48 +0100 <EvanR> you did an exhaustive check against the monoid laws?
2025-11-29 00:04:34 +0100 <EvanR> what just happened
2025-11-29 00:04:01 +0100 <monochrom> at least and, or, xor, xnor
2025-11-29 00:03:43 +0100 <monochrom> For Word you can also throw in bitwise operations :)
2025-11-29 00:03:05 +0100 <monochrom> Integers, if you just require semigroup, then there are plus, times, min, max.
2025-11-29 00:03:04 +0100 <haskellbridge> <loonycyborg> I guess it's already possible with TH
2025-11-29 00:02:17 +0100 <haskellbridge> <loonycyborg> like you could declare group(*) and get a multiplicative group :P
2025-11-29 00:01:55 +0100 <haskellbridge> <loonycyborg> I just wish you could customize typeclass operators
2025-11-29 00:01:11 +0100califax_califax
2025-11-29 00:01:08 +0100califax(~califax@user/califx) (Ping timeout: 272 seconds)
2025-11-28 23:59:56 +0100califax_(~califax@user/califx) califx
2025-11-28 23:59:01 +0100Sgeo(~Sgeo@user/sgeo) (Ping timeout: 244 seconds)
2025-11-28 23:55:50 +0100Sgeo_(~Sgeo@user/sgeo) Sgeo
2025-11-28 23:55:24 +0100Shark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net) (Ping timeout: 244 seconds)
2025-11-28 23:55:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-11-28 23:54:52 +0100 <tomsmeding> EvanR: xor, or, and, nand
2025-11-28 23:54:43 +0100 <yahb2> [(False,False,True,True,False),(False,False,True,True,True),(True,False,False,False,True),(True,True,False,False,True)]
2025-11-28 23:54:43 +0100 <tomsmeding> % filter check (let l2 = [False, True] in (\a b c d e -> (a, b, c, d, e)) <$> l2 <*> l2 <*> l2 <*> l2 <*> l2)
2025-11-28 23:54:35 +0100 <yahb2> <no output>
2025-11-28 23:54:35 +0100 <tomsmeding> % check (zero, a00, a01, a10, a11) = let f x y = [a00, a01, a10, a11] !! (2 * fromEnum x + fromEnum y) in and $ [f zero x == x && f x zero == x | x <- [False, True]] ++ [f x (f y z) == f (f x y) z | x <- [False, True], y <- [False, True], z <- [False, True]]
2025-11-28 23:54:17 +0100 <geekosaur> (how many ways can you define it for Integer? 😛 )
2025-11-28 23:52:34 +0100Dhark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net)
2025-11-28 23:50:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-28 23:50:24 +0100tromp(~textual@2001:1c00:3487:1b00:9176:7929:ae5a:d4f6)
2025-11-28 23:49:00 +0100tromp(~textual@2001:1c00:3487:1b00:9176:7929:ae5a:d4f6) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-11-28 23:48:25 +0100 <EvanR> how many ways can you implement Monoid for Bool