Newest at the top
| 2025-12-15 21:53:41 +0100 | <c_wraith> | Also, doing it via STRef chasing is *hard*. So many fiddly details. I wanted to practice with them. |
| 2025-12-15 21:53:13 +0100 | califax_ | califax |
| 2025-12-15 21:53:13 +0100 | califax | (~califax@user/califx) (Ping timeout: 252 seconds) |
| 2025-12-15 21:52:53 +0100 | eron | (~eron@187.56.156.228) lidenbrock |
| 2025-12-15 21:52:51 +0100 | <c_wraith> | I could probably make it a lot faster if I went with an array representation instead of STRef chasing. But I'd still lose on laziness unless I changed a lot of the API. |
| 2025-12-15 21:52:01 +0100 | <milan2> | [exa]: ty |
| 2025-12-15 21:51:32 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-15 21:50:48 +0100 | <[exa]> | c_wraith: nice way to show that tbh |
| 2025-12-15 21:50:07 +0100 | califax_ | (~califax@user/califx) califx |
| 2025-12-15 21:49:02 +0100 | <[exa]> | milan2: in longer, make a stupid serial prototype first and then you can switch the backend for whichever concurrent webserver matches your expected workload |
| 2025-12-15 21:48:51 +0100 | <c_wraith> | (It also only sped up to matching performance when I introduced that problem. Not a win!) |
| 2025-12-15 21:47:13 +0100 | <c_wraith> | The moral of the story: immutability is pretty cool. |
| 2025-12-15 21:47:03 +0100 | <c_wraith> | Thus I introduced an order dependence in a "pure" expression. |
| 2025-12-15 21:46:27 +0100 | <c_wraith> | I threw in an unsafeInterleaveST to recover laziness, but I was already using unsafeInterleaveST to run Kruskal's algorithm on demand. |
| 2025-12-15 21:45:30 +0100 | <c_wraith> | I decided to go back and rewrite Day 8 of the AoC using ST to make all the updates O(1) instead of just throwing all the indirection into a Map. It turned out slower, and I realized this was due to a loss of laziness from generating a summary of the disjoint set strictly at every iteration even though it was only used once. |
| 2025-12-15 21:44:48 +0100 | <[exa]> | milan2: in short yes |
| 2025-12-15 21:42:28 +0100 | <milan2> | ? |
| 2025-12-15 21:42:25 +0100 | <milan2> | Guyz I am thinking about prorotyping web app. Async is a big thing in IO heavy apps. Can I expect that I will be able to create fully async web api from fully async db client, http client and |
| 2025-12-15 21:42:14 +0100 | <c_wraith> | woo, I got a practical example of unsafeInterleaveST breaking "pure" code! |
| 2025-12-15 21:40:31 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-15 21:38:47 +0100 | bggd | (~bgg@user/bggd) (Read error: Connection reset by peer) |
| 2025-12-15 21:36:41 +0100 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2025-12-15 21:35:43 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-15 21:35:40 +0100 | Googulator37 | Googulator |
| 2025-12-15 21:35:16 +0100 | bggd__ | (~bgg@2a01:e0a:fd5:f510:6bc5:c845:f799:c476) |
| 2025-12-15 21:32:20 +0100 | Googulator37 | (~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-15 21:31:56 +0100 | Googulator37 | (~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-15 21:26:39 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
| 2025-12-15 21:25:05 +0100 | l0ckna | (~obr@089144192027.atnat0001.highway.a1.net) (Remote host closed the connection) |
| 2025-12-15 21:25:05 +0100 | lockna | (~obr@089144192027.atnat0001.highway.a1.net) (Client Quit) |
| 2025-12-15 21:24:50 +0100 | l0ckna | (~obr@089144192027.atnat0001.highway.a1.net) |
| 2025-12-15 21:24:48 +0100 | lockna | (~obr@089144192027.atnat0001.highway.a1.net) |
| 2025-12-15 21:24:34 +0100 | lockna | (~obr@089144192027.atnat0001.highway.a1.net) (Remote host closed the connection) |
| 2025-12-15 21:24:33 +0100 | l0ckna | (~obr@089144192027.atnat0001.highway.a1.net) (Remote host closed the connection) |
| 2025-12-15 21:24:10 +0100 | l0ckna | (~obr@089144192027.atnat0001.highway.a1.net) |
| 2025-12-15 21:24:08 +0100 | lockna | (~obr@089144192027.atnat0001.highway.a1.net) |
| 2025-12-15 21:23:54 +0100 | lockna | (~obr@089144192027.atnat0001.highway.a1.net) (Client Quit) |
| 2025-12-15 21:23:52 +0100 | <Rembane> | Both sound distantly familiar, so at least one of those. |
| 2025-12-15 21:22:03 +0100 | <int-e> | Which you might do for a Turing machine. Another way is to split transitions into transitions and epsilon-transitions, but not have rejecting states... so a typical NFA. |
| 2025-12-15 21:21:27 +0100 | lockna | (~obr@089144192027.atnat0001.highway.a1.net) |
| 2025-12-15 21:21:11 +0100 | lockna | (~obr@089144192027.atnat0001.highway.a1.net) (Quit: Leaving) |
| 2025-12-15 21:20:58 +0100 | <int-e> | one way to get a quintuple is to have symbols, states, accepting states, rejecting states, transitions |
| 2025-12-15 21:18:18 +0100 | <Rembane> | There was something in the regular automata course that was a quintuple of "basically trivial things" I can't remember what though, maybe a turing machine or regular expression or something. |
| 2025-12-15 21:17:54 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-15 21:17:42 +0100 | <monochrom> | Alpha and Meta :) |
| 2025-12-15 21:17:05 +0100 | <int-e> | (FWIW I call the underlying failed product Facebook 3D out of spite.) |
| 2025-12-15 21:17:04 +0100 | <Rembane> | int-e: Indeed, it doesn't mean anything. :) |
| 2025-12-15 21:16:52 +0100 | gf3 | (~gf3@user/gf3) (Ping timeout: 246 seconds) |
| 2025-12-15 21:16:47 +0100 | <monochrom> | Hey wouldn't it be nice! class Tuploid f where pure :: a -> f a; (<*>) :: f a -> f b -> f (a,b); class Tuploid f => Triploid f where (>>=) :: ... |
| 2025-12-15 21:15:59 +0100 | <int-e> | Rembane: It's like calling a company Meta because it's about something. ;-) |