Newest at the top
2024-10-06 19:52:00 +0200 | <Inst> | also unify the freaking maps over Set etc |
2024-10-06 19:51:45 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-06 19:51:34 +0200 | <Inst> | reduceL / reduceR instead of foldl / foldr, etc |
2024-10-06 19:51:20 +0200 | <Inst> | you don't even need to "fix" foldable / traversable etc, just rename them |
2024-10-06 19:50:29 +0200 | <Inst> | it actually seems pretty easy |
2024-10-06 19:50:19 +0200 | <Inst> | i'm really sick, like, my heart is failing, maybe just trying to rework the container system in Haskell is a good swansong |
2024-10-06 19:48:10 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Remote host closed the connection) |
2024-10-06 19:47:16 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-06 19:46:15 +0200 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2024-10-06 19:45:38 +0200 | saolsen | (sid26430@id-26430.lymington.irccloud.com) saolsen |
2024-10-06 19:44:05 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-10-06 19:43:21 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-10-06 19:40:16 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Read error: Connection reset by peer) |
2024-10-06 19:40:13 +0200 | <int-e> | well, vector has O(1) uncons :P |
2024-10-06 19:38:41 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-10-06 19:37:02 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-06 19:36:06 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-10-06 19:35:41 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-10-06 19:34:07 +0200 | <Inst> | you'd imagine they'd just use a bidirectional dynamic vector to appeal to their userbase |
2024-10-06 19:34:02 +0200 | <Franciman> | davean: i see many thanks |
2024-10-06 19:33:55 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds) |
2024-10-06 19:33:45 +0200 | <Inst> | Python seems to have that as well |
2024-10-06 19:33:36 +0200 | <Franciman> | i don't know it |
2024-10-06 19:33:34 +0200 | <Inst> | EczemaScript ;) |
2024-10-06 19:33:28 +0200 | <Inst> | Javascript |
2024-10-06 19:33:28 +0200 | <int-e> | ECMAScript |
2024-10-06 19:33:22 +0200 | <Franciman> | what is JS, Inst ? |
2024-10-06 19:33:18 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 272 seconds) |
2024-10-06 19:33:15 +0200 | <Inst> | what's the tradeoff of bidirectional vs unidirectional dynamic arrays / lists / vectors? |
2024-10-06 19:33:01 +0200 | <Inst> | i'm curious, even JS has O(n) on shift |
2024-10-06 19:32:54 +0200 | <int-e> | And this sidesteps many of the usual uses of dynamic vectors. |
2024-10-06 19:32:24 +0200 | <int-e> | But that's the thing... we want stay outside of IO/ST for as much as possible. And we have all these fusion frameworks which let us work with things like lists-as-mutable-vectors and often get good performance because they never actually materialize. |
2024-10-06 19:30:36 +0200 | <davean> | not mutable vector, which is the only thing we have thats vector like. |
2024-10-06 19:30:10 +0200 | <int-e> | right. vector is far worse for mutations :P |
2024-10-06 19:28:52 +0200 | <davean> | Sequence is WAY off vector performance. |
2024-10-06 19:28:49 +0200 | <Inst> | hmmm, you can just newtype vector for dynamic vectors, you don't need any additional information in order to implement a dynamic vector |
2024-10-06 19:28:45 +0200 | athan | (~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!) |
2024-10-06 19:27:45 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-06 19:25:55 +0200 | <int-e> | (Even when you consider amortized cost, persistence is a big obstacle to combining arrays and mutation. Okasaki-like tricks will work.) |
2024-10-06 19:25:06 +0200 | <Inst> | Sequence is built on fingertrees |
2024-10-06 19:24:21 +0200 | <int-e> | of course not |
2024-10-06 19:22:10 +0200 | <Inst> | yeah but iirc it's not based on bytearray, right? |
2024-10-06 19:21:59 +0200 | <int-e> | Data.Seq is a thing too |
2024-10-06 19:21:48 +0200 | <Inst> | davean: you can define a bidirectional dynamic vector, amortized O(1) cons |
2024-10-06 19:21:35 +0200 | <davean> | You can sorta get close amortised, but that requires reusing memory |
2024-10-06 19:21:09 +0200 | <Rembane> | Inst: Are you thinking of Data.Vector? |
2024-10-06 19:21:06 +0200 | <davean> | ... you can't have O(1) cons |
2024-10-06 19:20:54 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-10-06 19:20:43 +0200 | <Inst> | iirc the newbie rule of thumb is "prefer vectors unless you need laziness", but vector doesn't have O(1) cons |
2024-10-06 19:20:24 +0200 | <Inst> | btw, why doesn't Haskell have dynamic vectors? |