2025/11/18

Newest at the top

2025-11-18 02:34:41 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-18 02:33:33 +0100catties(~catties@user/meow/catties) catties
2025-11-18 02:31:18 +0100sindu(~sindu@77.19.134.151.tmi.telenormobil.no) (Ping timeout: 260 seconds)
2025-11-18 02:28:20 +0100Catty(~catties@user/meow/catties) (Remote host closed the connection)
2025-11-18 02:27:27 +0100Dhark8Shark8
2025-11-18 02:24:50 +0100AlexZenon(~alzenon@178.34.162.20)
2025-11-18 02:24:07 +0100 <haskellbridge> <Zemyla> True.
2025-11-18 02:23:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-11-18 02:21:50 +0100 <monochrom> Combination may be N->2. Each of n elements may be chosen or not-chosen.
2025-11-18 02:18:55 +0100AlexNoo(~AlexNoo@178.34.151.158) (Ping timeout: 246 seconds)
2025-11-18 02:18:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-18 02:18:46 +0100Tuplanolla(~Tuplanoll@91-159-187-167.elisa-laajakaista.fi) (Quit: Leaving.)
2025-11-18 02:17:08 +0100 <monochrom> So yeah it's both programming and category theory. I was coding up LU factorization with pivoting, and I recorded the permutation of rows by performing the same permutation on [0 .. n-1] and returning it.
2025-11-18 02:16:58 +0100AlexZenon(~alzenon@178.34.151.158) (Ping timeout: 256 seconds)
2025-11-18 02:16:42 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-11-18 02:15:27 +0100AlexNoo_(~AlexNoo@178.34.162.20)
2025-11-18 02:15:25 +0100 <monochrom> Moreover, it also hints that σ id is "backwards": It maps new indexes to old indexes. How to see it: Use N for old indexes, N' for new indexes. Then (N->a) -> (N'->a) is isomorphic to N' -> N.
2025-11-18 02:14:38 +0100trickard_trickard
2025-11-18 02:13:27 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-11-18 02:12:55 +0100 <EvanR> sounds like the theory of group action
2025-11-18 02:12:14 +0100 <monochrom> I don't know! Not interested for now.
2025-11-18 02:12:01 +0100 <monochrom> And the backward mapping maps e to \v -> v ∘ e
2025-11-18 02:11:51 +0100 <haskellbridge> <Zemyla> So is there a type that represents a combination?
2025-11-18 02:10:41 +0100 <monochrom> Model "array of length n with elements of type a" as N->a, N = {0 .. n-1}. Then permutations are a special cases of (N->a) -> (N->a). Then Yoneda embedding says that it's isomorphic to N->N, the forward mapping maps σ to σ id, id = [0 .. n-1].
2025-11-18 02:08:50 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 244 seconds)
2025-11-18 02:08:13 +0100 <monochrom> Turns out this was foretold by the Yoneda lemma too!
2025-11-18 02:08:11 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2025-11-18 02:07:46 +0100 <monochrom> Suppose σ permutes arrays of length n. I can apply it to the "identity array" [0 .. n-1], i.e., define e := σ [0 .. n-1]. Then I can use e instead of σ to permute other arrays: To permute v, (σ v)[i] = v[e[i]] for each i. In the vector library, you can just write `V.backpermute e v`.
2025-11-18 02:04:34 +0100infinity0(~infinity0@pwned.gg) infinity0
2025-11-18 02:03:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-18 02:02:54 +0100turlando(~turlando@user/turlando) turlando
2025-11-18 02:00:43 +0100turlando(~turlando@user/turlando) (Ping timeout: 246 seconds)
2025-11-18 01:59:58 +0100acidjnk(~acidjnk@p200300d6e717199494cb24f290a326c5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2025-11-18 01:59:03 +0100 <yin> :)
2025-11-18 01:58:50 +0100 <yin> yes
2025-11-18 01:57:05 +0100 <EvanR> was this a programming situation or category theory
2025-11-18 01:54:35 +0100 <monochrom> (The smell was correct. It really was Yoneda lemma. Know every angle, all of them are helpful.)
2025-11-18 01:54:10 +0100 <yin> jackdk: tyvm
2025-11-18 01:53:01 +0100 <monochrom> It's OK. Lately I smelled Yoneda lemma everywhere anyway. :)
2025-11-18 01:52:35 +0100 <yin> monochrom: it just had the same smell in my purposeless mind, that's all
2025-11-18 01:52:33 +0100 <jackdk> I got a lot out of (in order): this old "FRP - Events and Behaviours" talk: https://www.youtube.com/watch?v=GXW1jBijhlk, the diagrams in the reactive-banana package, and https://github.com/qfpl/reflex-workshop/ (for hands-on experience). They might help you get your head around the mental models
2025-11-18 01:51:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2025-11-18 01:49:59 +0100 <monochrom> If you think call/cc, you're a low-level person. It's not wrong, it just may be very helpful or very distracting depending on your purpose.
2025-11-18 01:49:19 +0100xff0x(~xff0x@2405:6580:b080:900:fb28:6c11:a653:72c4) (Ping timeout: 260 seconds)
2025-11-18 01:47:16 +0100 <EvanR> the signal is replaced with the event payload when/if it happens. Before before any events, the first argument applies
2025-11-18 01:46:55 +0100 <EvanR> something like Signal a -> Event (Signal a) -> Signal a
2025-11-18 01:46:36 +0100 <EvanR> the usual way to introduce a way to "dynamically" replace a behavior is to use an event
2025-11-18 01:45:45 +0100 <yin> right. i had that but (x t) looked weird to me :)
2025-11-18 01:45:41 +0100synchromesh(~john@2406:5a00:2412:2c00:6993:feea:8b51:a565) synchromesh
2025-11-18 01:45:37 +0100 <EvanR> would give you, basically (not actual syntax), Signal (f x)